今天部署完Mysql时,发现root用户无法从公网连接Mysql,从其他机器可以ping通这台机器,telnet 3306端口却不通。
1.查询了mysql中root用户的访问权限
use mysql;
select host,user from user;
发现root用户的权限是%,表示可以从任何机器访问
2.查看了防火墙是否关闭
service iptables status
发现防火墙也是关的
3.查看了mysql的配置文件
发现根本没有bind-address = 127.0.0.1这一条,说明也是正确的
4.查看端口是否对外开放
netstat -anp|grep 3306
发现3306端口是对外开放的
思来想去都觉得不对劲,想想我是用弹性公网IP登陆的XSHELL,但实际上机器的IP是私有IP,ifconfig发现IP果然是私有IP,原来问题出在这里,用访问私有IP的Mysql就成功访问了。