Lost connection to MySQL server at 'reading authorization packet' 处理解决办法

Mysql Version : 5.1.73

Os Version : Centos 5.9


问题叙述:

    今天一个php程序从客户端连接Mysql被监测到在偶尔的连接过程中报错,信息如下:

   Lost connection to MySQL server at 'reading authorization packet',看到这个错误提示,第一想到是客户端连接不上,服务端本地是否能连接。经验证,服务端本地是可以连接的,这就松了口气,一方面有很多任务是跑在Mysql服务端的,如果本地无法连接,会造成大部分程序阻塞;

   另一方面,服务端可以连接,那就可以进行相关的查问题。

    用show processlist查看连接的时候,发现连接数并不多,此时并发不高,不是并发的问题,但是有个值,很显眼:


    unauthenticated user,和报错的信息相似,未验证的用户。

    查了一下相关的资料,给出的解释是:“unauthenticated user” 是由一个客户端发起的连接,但是这个客户端用户还没有被认证。这种情况一般在系统负载比较高或者mysql比较繁忙的时候遇到。

    看到连接不高,看有可能是负载高也会导致,这个问题,然后看了下机器负载,负载并不高.....

    还有个参数也要提一下,就是skip-name-resolve。当客户端连接上来,服务器端都会对客户端进来DNS都会进行反查,来获得客户端的域名或主机名。而 skip-name-resolve 这个参数的意义就是禁止反向域名解析。然后就怀疑会不会是DNS服务器出了问题,才导致连接验证用户出问题。

    然后看了下 skip-name-resolve 状态

Lost connection to MySQL server at 'reading authorization packet' 处理解决办法_第1张图片

    此时 skip-name-resolve 参数已经设定了。那这个问题,就可以拿过去不考虑了。

    然后发现OS级别的监控外网百兆网卡有流量警报。然后发现了个问题,PHP程序对于Mysql的访问(每秒会有几百次的select)全是基于外网,造成了流量过高。然后看了下内网网卡,千兆,呵呵了,果断把基于外网的访问挪到内网上来。。。观察一段时间,连接缓解了,问题没在发生。。。。。

    !记一次网卡造成的Mysql连接异常!

    

你可能感兴趣的:(Mysql,FAQ)