将节点js连接到postgresql(谷歌云平台)

Posted

技术标签:

【中文标题】将节点js连接到postgresql(谷歌云平台)【英文标题】:connect node js to postgresql (google cloud platform) 【发布时间】:2022-01-10 12:28:16 【问题描述】:

我有一个在 gcp(云运行)中运行的 node.js 项目和一个 postgresql 数据库, 在本地运行 node.js 项目时,我设法建立了连接 在 gcp 上运行它时,它不会创建我的池,我也无法查询内容

这是我创建池的节点代码

  try 
    pool = new Pool(
      user: "postgres",
      host: "local_ip or public_ip i tried both",
      database: "postgres",
      password: "enter_password",
      port: "5432"
    );
  
  catch (err) 
    console.log("Failed to start pool", err)
  

为了能够让连接在我的本地机器上工作,我必须将我的 ip 添加到 gcp 上 postgresql 的连接部分 我试图添加的结果

nslookup my-node.server-url

但它不起作用,然后我尝试添加一个内部 ip 并使用它,但它也失败了,你如何在 gcp 中将节点项目与 postgresql db 连接?! 非常感谢您的帮助

更新:我在 yt 上观看了这个视频 https://www.youtube.com/watch?v=cBrn5IM4mA8&ab_channel=GoogleCloudTech,它显示您可以使用套接字连接,但它没有显示如何将云运行实例连接到云 sql 以便创建套接字...

【问题讨论】:

您从哪里连接? GCP 不是产品,所以请更具体 我的节点服务在云端运行 您是否已经查看过文档? cloud.google.com/sql/docs/postgres/connect-run 如果以上评论对您有帮助,请告诉我们。 嗯,是的,我在提出问题之前已经看过这些文档,我觉得出于某种原因它们对我来说太复杂了,当我阅读它们时我可能已经筋疲力尽了,但基本上我只是没有不知道在哪些资源上添加哪些规则?例如,查看了该服务,那里的搜索中没有“cloudsql”角色... 【参考方案1】:

您可以按照适用于 Node.js 的代码示例 here 并在您的适当变量(用户、密码等)中进行子操作,以允许您的 Cloud Run 实例通过 Unix 套接字连接到您的 Cloud SQL 实例。然后通过运行更新您的 Cloud Run 服务:

gcloud run services update SERVICE_NAME \
--add-cloudsql-instances=INSTANCE_CONNECTION_NAME

将您的 Cloud Run 服务名称和 Cloud SQL 连接名称输入到上面的命令中以成功连接这两个服务。

【讨论】:

谢谢!我错过了这个命令

以上是关于将节点js连接到postgresql(谷歌云平台)的主要内容,如果未能解决你的问题,请参考以下文章

如何在谷歌云平台中使用私有 IP 从我的电脑连接到 sql 实例

如何连接到谷歌计算引擎上的远程 PostgreSQL 服务器?

谷歌云平台计算引擎

尝试通过 SSH 连接到谷歌云时出错

谷歌云内存存储(Redis),实例刚启动时无法连接到redis

连接到谷歌云消息云连接服务器的身份验证错误