【发布时间】:2021-09-14 05:29:18
【问题描述】:
我正在尝试迁移以将私有 IP:s 用于我们所有的 Cloud SQL 实例。我已经让它为 postgres 工作了,现在我正在尝试使用 MySQL 访问我们的 wordpress 实例。
问题是我无法从我们 GKE 集群中正在运行的 pod 获得连接。
root@******:/var/www/app# mysql --host=10.**.**.* -u *_se -p
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '10.*.*.*' (110 "Connection timed out")
我已经在 Cloud SQL 实例上激活了私有 IP,并添加了一个私有服务连接到 VPC 网络,该网络与我们的集群使用的网络相同,但仍然无法像使用 postgres 一样连接。
有谁知道我可以尝试让这个工作吗?
【问题讨论】:
-
你试过用instance connection name代替ip吗?
-
@Batato 我不确定运行的 pod 如何在没有任何代理的情况下确定实例名称所属的 ip。但我只是为了确定:ERROR 2005 (HY000): Unknown MySQL server host 'we*:europe-west1:*' (-2)
-
检查以下内容: 1. 内存。如果 Cloud SQL 实例上没有足够的内存来创建新连接,它将被拒绝。 2. 使用私有 IP 连接 Cloud SQL 实例,GKE 集群必须是 VPC-native 并且与 Cloud SQL 实例具有相同的 VPC 网络对等。
-
VPC 对等互连很麻烦,因为 Cloud SQL 存在于私有服务 VPC 中。关键是您必须将 GKE 集群创建为 VPC 原生集群,并确保它与 Cloud SQL 实例位于同一 VPC 中。如果这不可行,我建议改为共享 VPC,并创建一个服务项目,Cloud SQL 实例所在的服务项目托管在 GKE 项目中以获取访问权限。
标签: mysql google-cloud-platform mysql-cli