问题描述:同一个局域网内,本机(A)的MySQL可以正常连接,现在需要另外一台机器(B)也可以通过IP访问到本机数据库,但提示连接失败。
解决思路:首先保证两台机器网络是通的,使用B去pingA的ip,网络是通的;
命令行输入:telnet 38.8.76.228(A机IP) 51037(A机端口),提示连接失败;
此时我意识到,应该是端口没有开放出来或者是被屏蔽掉了,于是先检查B机防火墙,发现处于关闭状态,没有问题,然后按照百度的方法,去新建A机防火墙入站规则,重启之后发现没用。
排除了上面的问题之后,那就是本机的MySQL配置问题了,之前检查了几次没有发现,于是再去检查,终于发现配置的问题所在,把bind-address配置为0.0.0.0,意思是针对地址不作限制,这样总可以了吧!然后去B机再次telnet,发现终于通了,于是打开Navicat,键入IP,用户名,密码,发现还是连不上???但是报错不同了,提示密码不正确,OK,离成功不远了。
去A机MySQL库的user表中查看所有user以及host,发现root竟然存在三个账号,然而host各不相同,分别为127.0.0.1,localhost,%,这就是问题所在了,使用root账号登录的时候,校验密码其实查询的是host为%的记录,手动修改密码,终于连接成功!