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 状态


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

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

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

    

当出现“lost connection to mysql server at ‘reading authorization packet’, system”错误时,意味着客户端无法正确连接MySQL服务器,并且故障通常是由以下原因之一引起的: 1. 网络问题:可能是网络连接不稳定或网络延迟导致连接丢失。这可能是由于网络故障或服务器故障引起的。 解决方法:检查网络连接并确保网络稳定。尝试重新连接MySQL服务器,如果问题持续存在,可能需要联系系统管理员或网络服务提供商以解决网络问题。 2. 认证错误:可能是由于客户端提供的凭据与MySQL服务器的凭据不匹配引起的。这可能是由于密码错误或用户名错误等问题引起的。 解决方法:检查提供的用户名和密码是否正确,并确保它们与MySQL服务器上配置的凭据匹配。可以尝试使用正确的凭据重新连接MySQL服务器。 3. 服务器过载或故障:可能是由于MySQL服务器负载过重或发生故障导致无法处理连接请求。 解决方法:检查MySQL服务器的负载和状态。如果服务器过载,可以尝试等待一段时间再尝试连接。如果服务器发生故障,可能需要联系系统管理员或数据库管理员以解决问题。 综上所述,当出现“lost connection to mysql server at ‘reading authorization packet’, system”错误时,我们应该首先检查网络连接,确保网络稳定;然后检查提供的凭据是否正确;最后,检查MySQL服务器的负载和状态。根据具体情况采取适当的解决方法,可能需要与系统管理员、网络服务提供商或数据库管理员进行进一步的沟通和协调。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值