我知道有很多关于此主题的主题,但我已经全部阅读完毕,仍然无法从外部访问 MYSQL...如能得到任何帮助我将不胜感激
我正在使用 Centos 6.7。
这是我的 /etc/my.cnf:
绑定地址 = 0.0.0.0
这是我添加到 iptables 并随后保存的行:
sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
重新启动了 mysql 和我能想到的一切。还刷新了 MYSQL 权限。这是 mysql.user 表的捕获:
正如所说,任何帮助都是受欢迎的,我在这上面花了太多时间......
编辑1:MYSQL 虚拟机对于尝试连接它的计算机来说是可见的并且可用的:
答案1
sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
这几乎肯定是你的问题。 CentOS 的默认防火墙会将该规则放入 DROP all 规则之后的 INPUT 链中。 这意味着该规则永远不会被执行。
使用iptables -I INPUT ...
它在链的开头插入一条规则就可以了。
答案2
nmap
它,你会看到哪些端口是打开的。ping
没什么可说的。
答案3
运行以下命令从所有机器进行访问。
mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;