1

我正在尝试迁移以将私有 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 相同的方式连接。

有谁知道我可以尝试让这个工作吗?

4

1 回答 1

0
  • 通过专用连接进行通信时,Cloud SQL 实例必须遵守特定的网络要求。其中之一是您的 Cloud SQL 和 GKE 实例位于同一区域和 VPC 网络中。勾选此项为 MySQL 配置私有 IP。
  • GKE 集群必须是 VPC 原生的,并且与 Cloud SQL 实例具有相同的 VPC 网络对等。要从 GKE 连接 MySQL,请参阅此 Google文档

注意:如果您使用共享 VPC 网络,则无法将共享 VPC 网络中的私有 IP 地址分配给现有 Cloud SQL 实例。此外,VPC 网络对等互连使用私有服务访问。但是,您不会显式创建 VPC 网络对等互连,因为对等互连在 GCP 内部。

  • 上述错误的一些可能原因如下:
  1. 网络故障,尤其是 MySQL 数据库服务器在远程主机上运行时。
  2. 提到的主机上没有运行 MYSQL 服务器。
  3. 防火墙阻止 TCP-IP 连接或其他相关原因。

我建议您检查防火墙设置并检查您的 MySQL 服务器是否正在侦听默认端口 3306。还尝试在 MySQL 服务器绑定在“my.cnf”中的 IP 上连接 MySQL 服务器。如果不是这样,如果您使用的是 Ubuntu,请运行以下命令来绑定地址:

               1. Run the command  vim /etc/mysql/my.cnf or vim /etc/mysql/mysqld.conf/mysqld.cnf
               2. Comment bind-address = <Server IP> using the # symbol
               3. Restart your MYSQL server once.
于 2021-07-05T11:34:11.870 回答