我的问题类似于this question,但由于我没有足够的声誉来撰写评论而且这个问题的答案没有帮助,我开始提出一个新问题。
我有一个带有LEMP的GCE VM实例,其中包含MySQL Ver 15.1 Distrib 10.1.18-MariaDB,我正尝试从本地计算机远程连接它。
我已经尝试了之前提到的问题链接中的所有建议。
这是我的防火墙配置:
在my.cnf文件中我有:
bind-address = 0.0.0.0
关于MySQL用户权限,我有以下内容:
当我尝试使用 wkreport 用户远程连接时,我得到以下结果:
我的问题是,我错过了什么?!
答案 0 :(得分:1)
我刚刚找到解决问题的方法,
特别感谢@Slava指出我的方式,毕竟它是iptables。
因此,当我尝试远程连接时,我一直收到“MySQL连接拒绝”消息,因此我搜索了查看TCP连接日志的方法,并找到了tcpdump
命令。
通过运行sudo tcpdump port 3306 -vvv -n
我每次尝试远程连接时都会看到以下输出:
我搜索了tcpdump手册页,发现R表示TCP RST(RESET)标志。
搜索了一下,发现这个question及其接受的答案再次引发了@Slava自第一次评论以来建议的IPTABLES。
当我仔细观察并看到我的INPUT ACCEPT tcp:3306是在REJECT TCP拒绝后使用tcp-reset规则定义因此日志显示时。
在此之后我刚删除规则以接受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:
列出带行号的iptables:
sudo iptables -nL --line-numbers
最后的强硬:
答案 1 :(得分:0)
我遇到了与vm实例类似的问题。 我测试了所有内容,它通过在mysql上创建一个新用户来解决。
我用这个post来解决它。