gpt4 book ai didi

python - 数据库连接如何在 Google App Engine python + Google Cloud SQL 中工作?

转载 作者:太空宇宙 更新时间:2023-11-04 02:39:10 25 4
gpt4 key购买 nike

我在 Google App Engine(灵活)上有一个工作的 Python 3 应用程序连接到 Google Cloud SQL 上的 Postgres。我通过 following the docs 让它工作,在某些时候,您可以通过 psycopg2 连接到这样的数据库说明符

postgresql://postgres:password@/dbname?host=/cloudsql/project:us-central1:dbhost

我正在尝试了解主机名 /cloudsql/project:us-central1:dbhost 的工作原理。 Google 将其称为“实例连接字符串”,它看起来确实扮演着常规主机名的角色。只有 /: 它不是 DNS 解析器的有效名称。

Google 灵活的 Python 环境是否以某种方式修改以支持像这样的特殊主机名?它看起来像普通的 Python 3 和 psycopg2,但也许它以某种方式进行了修改?如果是这样,这些修改是否记录在任何地方? docs for the Python runtime对此一无所知。

最佳答案

事实证明,host=/cloudsql/project:us-central1:dbhost 指定了文件系统中目录的名称。该目录中有一个名为 .s.PGSQL.5432 的文件,它是一个 Unix 域套接字。 Cloud SQL Proxy 的实例正在监听那个 Unix 域套接字并通过 TCP 将数据库请求转发到实际的数据库服务器。尽管数据库连接字符串是host=,但它实际上命名了一个带有 Unix 套接字的目录;这是 libpq 的一个特点, Postgres 连接库。

非常感谢Vadim感谢您在评论中快速回答我的问题,在这里为 future 的读者写下更完整的答案。

关于python - 数据库连接如何在 Google App Engine python + Google Cloud SQL 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47043011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com