使用Cloud SQL代理连接到GCP Cloud SQL

3
我将遵循此指南连接到我的GCP云Postgresql,我只有一个私有IP。当我运行时:
./cloud_sql_proxy -instances=<Instance connection name>=tcp:5432

我得到了以下内容(实际引用已被替换为<Instance连接名称>
2019/04/01 11:46:45 failed to setup file descriptor limits: failed to set rlimit {&{8500 4096}} for max file descriptors: invalid argument
2019/04/01 11:46:45 Listening on 127.0.0.1:5432 for <Instance connection name>
2019/04/01 11:46:45 Ready for new connections
2019/04/01 11:47:28 New connection for <Instance connection name>
2019/04/01 11:49:38 couldn't connect to <Instance connection name>: dial tcp 172.27.160.3:3307: connect: connection timed out

如果我运行

psql "host=127.0.0.1 sslmode=disable dbname=<db> user=<user> password=<password>"

然后我得到了以下结果。
psql: FATAL:  password authentication failed for user "prodigy"

如果在与我的云SQL相同网络的VM实例上运行相同的psql命令,则连接就会非常好。


https://dev59.com/8Kvka4cB1Zd3GeqPxLKq#55450229 - Fahad Abid
@FahadAbid 不幸的是,这不是问题。 - mr.bjerre
首先,我不知道为什么。但如果在同一网络中工作,则可能是psql命令中的主机IP不正确。只是一个猜测。 - HelloThere
抱歉。当我从虚拟机实例调用时,主机IP是不同的。那是一个内部IP。 - mr.bjerre
您是否已启用了 Cloud SQL API?请前往 APIs & Services > Library。在“搜索 APIs 和服务”栏目中输入 SQL。选择“Cloud SQL 管理 API”。单击“启用”。 - Lozano
2个回答

0

0

您的 Cloud SQL 实例需要位于同一客户端网络中,才能使用其专用 IP 进行连接。

在 Google Cloud Platform 网络之外,不可能通过 Cloud SQL(如所述)的专用 IP 进行连接。在这种情况下,您可以尝试使用 Cloud Interconnect [2] 将您的本地网络扩展到 Google 的网络中,以便您可以尝试连接并查看是否适用。

另一方面,使用 Cloud SQL 代理时,您需要声明使用专用 IP [3]。如果未指定,则代理将默认寻找公共 IP。

让我知道进展情况。


[1] https://cloud.google.com/sql/docs/mysql/private-ip

[2] https://cloud.google.com/interconnect/docs/

[3] https://cloud.google.com/sql/docs/postgres/sql-proxy#private-ip


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接