【问题标题】:connect to remote mysql server from google cloud从谷歌云连接到远程mysql服务器
【发布时间】:2020-11-16 08:45:03
【问题描述】:

我有一台谷歌云机器,它有一个 ubuntu 操作系统,我在另一台服务器上有 MySQL 数据库,我在我的 SQL 服务器上打开了远程连接,我可以从我的谷歌云机器上的任何其他机器连接到我的数据库不,它需要很长时间然后我有一个超时连接问题。 我认为问题出在防火墙规则上,所以我应用此命令创建允许 3306 端口的规则

cloud compute firewall-rules create "mysql-remote-access" --allow tcp:3306 --source-tags "mysql-client" --target-tags "mysql-server"

但是,我仍然无法连接到远程 MySQL 服务器
在哪里可以启用呢,谢谢

【问题讨论】:

  • 您是否使用外部IP的内部IP连接到MySQL?请提供有关您的网络拓扑的更多详细信息。
  • 感谢您的回复,我使用的是外部 IP,我的数据库托管在谷歌云网络之外的另一台服务器上
  • 我的数据库托管在完全在谷歌云之外的 xx.xx.xx.xx ip 上,我试图从我的谷歌云实例访问这个数据库,但我不能,我试过我的本地机器访问数据库,它连接没有任何问题
  • 在谷歌云服务器我打开远程mysql数据库,尝试远程访问mysql数据库,我可以,我可以从我的xx.xx.xx.xx服务器访问云服务器中的数据库,但无法从云服务器访问 xx.xx.xx.xx 中的数据库
  • 所以发生的事情是我可以从 xx.xx.xx.xx 访问云服务器但不能处于反向状态,(从云服务器访问 xx.xx.xx.xx 中的数据库), xx.xx.xx.xx 有 cpanel ,所以我不知道它是否有任何规则阻止云访问它

标签: mysql google-cloud-platform


【解决方案1】:

我认为您的防火墙规则不正确。这个应该能解决问题

gcloud compute firewall-rules create "mysql-remote-access" \
--direction=EGRESS --action=ALLOW --rules=tcp:3306 \
--destination-ranges=xxx.xxx.xxx.xxx/32 --target-tags=mysql-client

简短描述:您允许端口 3306 上的 EGRESS 流量到目标 xxx.xxx.xxx.xxx 用于来自带有标签“mysql-client”的 VM 的流量

By default all the outgoing communication are allowed,但您可能有一个更高优先级的规则可以防止这种情况发生

隐含的允许出口规则。操作为允许、目的地为 0.0.0.0/0 且优先级尽可能低 (65535) 的出口规则允许任何实例将流量发送到任何目的地,但被 Google Cloud 阻止的流量除外。

如果该规则不起作用,请分享您现有的所有防火墙规则。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    • 2018-06-01
    • 2020-05-16
    • 1970-01-01
    • 2013-08-16
    • 2015-06-02
    • 2018-08-16
    相关资源
    最近更新 更多