google-cloud-platform - 由于 SQL 云配置无效,云运行无法启动
问题描述
我按照文档从云运行中启用 SQL Cloud。但根据文档:
您的容器实例现在可以通过自动激活和配置的 Cloud SQL 代理连接到 Cloud SQL。/cloudsql/[CONNECTION NAME]
在您的代码中,您可以使用unix 套接字连接到 Cloud SQL 实例。
最后一句是什么意思?我是否需要使用通常的连接字符串进行连接,例如:
jdbc:postgresql://localhost:5432/${DATABASE_NAME}
就我而言,这就是阻止容器启动的原因。org.postgresql.util.PSQLException:连接到 localhost:5432 被拒绝。检查主机名和端口是否正确以及 postmaster 是否接受 TCP/IP 连接。
我还使用以下命令“添加”SQL 云:
gcloud beta run deploy --image gcr.io/[PROJECT_ID/[IMAGE_NAME]:[TAG] --add-cloudsql-instances [CONNECTION_NAME]
解决方案
连接语句的一个示例是:
import pymysql
connection = pymysql.connect(unix_socket='/cloudsql/' + <INSTANCE_CONNECTION_NAME>,
user='<USER>',
password='<PASSWORD>',
db='<DATABASE>')
您可以在Google 的文档中找到更多相关信息,了解如何从使用云代理的外部应用程序连接到 Cloud SQL。
如果您使用的是 Java。可以在此处找到 UNIX 套接字连接的文档:Cloud SQL Socket Factory for JDBC drivers