服务器上安装的mysql,为root用户设置了任意主机可以连接%,本地使用NavitCat也可连接,但是在服务器上使用mysql -u root -h 115.xxx.xxx.127 -p连接时,却报Access denied for user 'root'的异常,使用mysql -u root -p可以连接。百思不得其解之际,使用mysql -u root -p登录进去后,
use mysql;
select host,user from user;查看开放的主机和用户访问。发现除了 root %之外,还有root 115.xxx.xxx.127等多个IP,是之前的同事设置的。
(PS:这是我删除多余host后的截图,之前为root指定多个公网具体IP的查询结果忘记截图保存了。)
既然我们已经为root指定 %后,那么root 115.xxx.xxx.127的指定就显得很多余。果断删除 delete from user wher host='115.xxx.xxx.127',
然后flush privileges;退出。再使用mysql -u root -h 115.xxx.xxx.127 -p访问,终于可以连接上了。
题外话:如果未开启root远程访问,可通过下面的sql开启:
update user set host=
'%'
where user =
'root'
;
flush privileges;