按照说明使用 PostgreSQL 数据库创建 Google Cloud SQL 实例。我可以使用实例名称从 glcoud 命令行检查它:
gcloud sql instances describe my-fancy-instance-name
我得到了大量的细节!
当我创建SSL证书时,它给了我psql命令进行连接,它与Google文档中提供的有关如何通过公共IP连接的说明相匹配(我暂时将其启用(。
现在,使用发现的 IP 和端口(也已通过 gcloud 命令验证(,我尝试调用 psql 进行连接:
psql "sslmode=verify-ca sslrootcert=server-ca.pem
sslcert=client-cert.pem sslkey=client-key.pem
hostaddr=my_INSTANCE_IP
user=my_USER_NAME dbname=my_DB_NAME"
这需要一点时间,但它回来并报告:
psql: could not connect to server: Operation timed out
Is the server running on host “nnn.ooo.ppp.qqq" and accepting
TCP/IP connections on port xxxxx?
我验证了 ip,但 gcloud 命令没有返回端口......
现在,我将SSL(.pem(文件放在~/.postgress文件夹中,并在我的命令中添加了该路径,但没有乐趣。
任何想法为什么 psql 无法连接(连接超时(?特别是因为 gcloud 命令有效?
错误消息表明 CloudSQL 实例未向本地主机 IP 公开。与文档步骤 7 中所示,您需要将本地 psql 客户端 IP 添加到授权网络。你能确认你是否这样做了吗?如果您的本地主机 IP 是动态的,则在本地 IP 更改后,您必须定期将 IP 重新添加到授权网络。按照您提供的Google文档,我成功地从本地psql客户端连接到我的Cloud Postgresql数据库。