在Google Compute Engine VM上远程连接到MySQL

时间:2017-02-08 15:40:40

标签: mysql google-compute-engine mariadb

我的问题类似于this question,但由于我没有足够的声誉来撰写评论而且这个问题的答案没有帮助,我开始提出一个新问题。

我有一个带有LEMP的GCE VM实例,其中包含MySQL Ver 15.1 Distrib 10.1.18-MariaDB,我正尝试从本地计算机远程连接它。

我已经尝试了之前提到的问题链接中的所有建议。

这是我的防火墙配置:

enter image description here

在my.cnf文件中我有:

  

bind-address = 0.0.0.0

关于MySQL用户权限,我有以下内容:

enter image description here enter image description here

当我尝试使用 wkreport 用户远程连接时,我得到以下结果:

enter image description here

我的问题是,我错过了什么?!

2 个答案:

答案 0 :(得分:1)

我刚刚找到解决问题的方法,

特别感谢@Slava指出我的方式,毕竟它是iptables。

因此,当我尝试远程连接时,我一直收到“MySQL连接拒绝”消息,因此我搜索了查看TCP连接日志的方法,并找到了tcpdump命令。

通过运行sudo tcpdump port 3306 -vvv -n我每次尝试远程连接时都会看到以下输出:

enter image description here

我搜索了tcpdump手册页,发现R表示TCP RST(RESET)标志。

搜索了一下,发现这个question及其接受的答案再次引发了@Slava自第一次评论以来建议的IPTABLES。

当我仔细观察并看到我的INPUT ACCEPT tcp:3306是在REJECT TCP拒绝后使用tcp-reset规则定义因此日志显示时。

enter image description here

在此之后我刚删除规则以接受tcp:3306并将其添加到拒绝tcp规则中并瞧!

iptables -D INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
iptables -I INPUT {line number from the first reject tcp rule} -p tcp -m tcp --dport 3306 -j ACCEPT

IPTABLES现在看起来像这样,最后我可以远程连接到MySQL: enter image description here

列出带行号的iptables:

sudo iptables -nL --line-numbers

最后的强硬:

  • 可以通过将源IP地址列入白名单,以便为安全事项进行远程连接。

答案 1 :(得分:0)

我遇到了与vm实例类似的问题。 我测试了所有内容,它通过在mysql上创建一个新用户来解决。

我用这个post来解决它。