MySQL-5.5.10 – 在查询过程中丢失与MySQL服务器的连接(Web客户机和MySQL从机)

我们刚刚将现有的MySQL5.1数据库服务器升级到具有MySQL 5.5的更新(更好)的硬件,而且事情已经顺利进行了将近6个星期。

就在最近几天,我发现了一些错误,比如:

从MySQL的奴隶:

[ERROR]从服务器读取数据包时出错:查询期间与MySQL服务器的连接丢失(server_errno = 2013)

或从Apache /其他:

在'读取初始通信数据包'时丢失了与MySQL服务器的连接,系统错误:110

在今天晚上的某个时候,许多networking节点都在三分钟内报告了这个错误(许多这样的报告,因为这是繁忙的时期)。 但是,这些问题似乎并不符合任何极端负载的时间。 对于所有的意图和目的,MySQL上的连接/线程负载处于正常的速度(在大约10到40个连接的线程之间),并且在过去的几周内Web负载在很多时候都很高。

这些连接错误是否有其他原因,我没有看到?

Hooray,调整max_allowed_pa​​cketvariables,增加它的值并重新启动MySQL。 它将为MySQL提供读取数据包的主要能力。 试试看,并给我们一个反馈。

错误110是“连接超时”,这表明您的客户端和MySQL服务器之间的networking正在发生一些事情。 除了networking问题之外,如果服务器过度负载以响应传入连接,也可以看到这一点。

您可以尝试使用等待超时或连接超时,但这可能会掩盖根本问题。 你可能会有一个错误的查询,使MySQL进程堆叠起来。 检查(或启用)您的SQL慢日志。 运行mysqltuner来调整variables。 阅读mysql文档的调整MySQL部分,并确保您的指令是正常的。

编辑:在应用层,即PHP,你可以有PHP脚本死亡,如果它没有在一段时间内完成,通过调整max_execution_time指令