【问题标题】:GCP Datastream Private connection - can't connect to MySQL ServerGCP 数据流专用连接 - 无法连接到 MySQL 服务器
【发布时间】:2021-12-19 02:59:27
【问题描述】:

希望你一切都好。

我不想使用私有连接将 Google Datastream 与托管在 Cloud SQL 中的 MySQL 数据库连接起来。

我已使用公共 IP 通过公共互联网连接,但我需要通过 VPC 对等连接以确保安全,文档表明应执行以下操作:https://cloud.google.com/datastream/docs/private-connectivity

我一直在尝试跨 Cloud SQL Auth Proxy 进行连接,请按照此文档进行操作,并且我已经将代理连接到 Cloud SQL:https://cloud.google.com/sql/docs/mysql/connect-admin-proxy#tcp-sockets

在每次我看到相同的错误时,无论配置什么 ip,它总是会更改为另一个 ip。

例如,下图显示了设置了 Cloud SQL Auth Proxy 内部 IP 10.128.0.2 的 perfil 配置。

而且,当我尝试测试时,我发现 MySQL IP 更改为 192.168.5.236

【问题讨论】:

    标签: mysql google-cloud-platform google-cloud-sql google-vpc google-datastream


    【解决方案1】:

    一般来说,这是一个 MySQL 客户端错误代码。此错误的可能原因是:

    • MySQL 服务器未运行,或

    • Windows 服务器上的防火墙配置阻止对端口 3306 的访问

    => 要解决给定的错误消息,请按照以下步骤操作:

    1. 验证 MySQL 服务器是否正在运行并使用 ping 命令检查客户端-服务器连接。例如:ping server_ip_address

    2. 要使用私有 IP 连接到 Cloud SQL 实例,Cloud SQL 身份验证代理必须位于可以访问与实例相同的 VPC 网络的资源上。[1]

    3. 当您启动 Cloud SQL Auth 代理时,为确保它使用私有 IP,请确保传递标志:

     -ip_address_types=PRIVATE
    
    
    1. 另外,请验证防火墙配置并确保端口 3306 未被阻止。

    2. 您还可以查看 mysql 配置文件 [2] 并检查是否有与之相关的绑定地址。如果有绑定地址,请使用 # 字符将其注释掉。

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

    [2]How do I find the MySQL my.cnf location

    【讨论】:

    • 感谢 Dilpreet Kaur,问题出在防火墙规则上。我使用 de default VPC 女巫只允许来自计算引擎中 ip 牧场的 tcp:3306 连接,而不是来自 Datastream 中的新 IP 范围。
    【解决方案2】:

    就我而言,我将 Cloud SLQL 代理安装在计算引擎中,并将 Mysql 安装在 Cloud SQL 中。

    解决方案如下:

    我需要创建一个ingress firewall rule 允许 IP 范围从 Datastream Private Connection(我需要通过专用连接连接 Datastream 以进行治理)到 tcp:3306 中的 Cloud SQL Auth Proxy IP Range。

    你可以通过Connectivity Tests测试你的连接

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-24
      • 2012-08-15
      • 2015-05-10
      • 2012-11-03
      • 2013-04-14
      • 2020-09-13
      相关资源
      最近更新 更多