业务说,最近几天,晚上有段时间会连接不上phxsql,但是过了一会又好了,又能重新连上了,我想既然能连上那应该不是授权表mysql.user的问题,要是授权有问题,会一直连接不上才对,平常又不会有人去改连接配置
解决方案用了一个很挫的方法,每10秒钟去连接一次phxsql,去做show databases的动作,好几天后,业务又说连接不上了,于是查询日志,确实连接不上,报错信息如下root@netbank:~# mysql -h数据库机器 -u'bigolive' -p'密码' -P54321 yycall
ERROR 1045 (28000): Access denied for user 'xxx'@'xxx.xxx.xxx.84( using password: YES)
我到mysql.user表看,确实没有xxx.xxx.xxx.84这个IP的授权,所以连接不上是正常的
查询业务机器的IP,发现确实有84这个IP,不过这个是联通IPifconfig|grep cast|awk -F' ' '{print $2}'|awk -F: '{print $2}'
xxx.xxx.xxx.202
xxx.xxx.xxx.84
xxx.xxx.xxx.13
连接不上的原因是,业务机器并不总是通过电信IP去连接phxsql,有时因为网络问题,电信的道路不通就会用联通的IP去连接phxsql,而电信ip有授权,联通的ip没有授权,导致连接不上。解决方法是把所有的ip都授权一次,移动的,联通的,教育网的,内网的,都取授权一次