postgresql 使用psycopg2连接到Google Cloud SQL Postgres示例

gzszwxb4  于 2023-08-04  发布在  PostgreSQL
关注(0)|答案(3)|浏览(149)

我正在尝试使用psycopg2连接到Google Cloud SQL Postgres。
我已经创建了一个PostgreSQL示例,目前使用默认数据库postgres。我能够连接从pgadmin工具以及从gcloud shell 和查询给予预期的结果。
我已经开发了一个 flask 应用程序和部署在标准的应用程序引擎。
conn = psycopg2.connect(database="postgres", user = "postgres", password = "password", host = "/cloudsql/my-new-db")
当我运行它时,得到psycopg2.OperationalError: could not connect to server: No such file or directory错误。
我有预感主机值不正确。我尝试了各种选项,如/cloudsql/<prj-name>.<region>.<db-instance-name>
但是,似乎什么都不起作用。我还应该做些什么来删除这个错误?

0sgqnhkj

0sgqnhkj1#

unix_socket = '/cloudsql/{}'.format("my-project-id:us-central1:my-db-name")

conn = psycopg2.connect(database="postgres", user = "postgres", password = "password", host = unix_socket)

字符串
这对我很有效。

pbgvytdp

pbgvytdp2#

如本文中所述,从应用引擎连接到Cloud SQL:
使用Unix套接字连接
正确配置后,您可以通过以下路径将服务连接到在环境文件系统上访问的Cloud SQL示例的Unix域套接字:/cloudsql/INSTANCE_CONNECTION_NAME。
INSTANCE_CONNECTION_NAME可以在Google Cloud Console中的示例概述页面上找到,也可以通过运行以下命令找到:

gcloud sql instances describe [INSTANCE_NAME]

字符串
编辑:格式设置

yruzcnhs

yruzcnhs3#

在你的flask服务器上,确保安装psycopg 2库(pip install或使用apt-get install)。我已经附上了一小段代码,我有成功连接到我的Postgres数据库,也许它会以某种方式帮助。我注意到你没有指定端口。

connection = psycopg2.connect(
   user = 'userName',
   password = password,
   host = 'some ip here',
   port = '5432',
   database = 'db name here'
)

字符串
在我的例子中,主机是服务器的IP,它有一个端口转发到我的flask服务器。我不知道你是如何访问你的主机。我的flask API和DB实际上托管在Google Cloud中的单独VM上。我希望这有帮助,如果没有,也许可以提供更多的背景,我可以看看它更多。

相关问题