将节点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 服务器?