MySQL 8.0 参考手册 / 第 2 章安装和升级 MySQL / 2.9 从源码安装MySQL / 2.9.8 处理编译MySQL的问题 / B.3.2 使用 MySQL 程序时的常见错误 /
B.3.2.3 失去与 MySQL 服务器的连接
出现此错误消息的可能原因有以下三种。
通常它表示网络连接有问题,如果经常出现此错误,您应该检查您的网络状况。如果错误消息包括“查询期间” ,这可能就是您遇到的情况。
有时,当数百万行作为一个或多个查询的一部分发送时,会出现“查询期间”形式。如果您知道发生这种情况,您应该尝试将net_read_timeout
其默认值 30 秒增加到 60 秒或更长,足以完成数据传输。
更罕见的情况是,当客户端尝试与服务器建立初始连接时,可能会发生这种情况。在这种情况下,如果您的
connect_timeout
值设置为仅几秒,您可以通过将其增加到十秒来解决问题,如果您的距离很远或连接速度很慢,则可能需要更长的时间。您可以使用 来确定您是否遇到了这种更不常见的原因
SHOW GLOBAL STATUS LIKE 'Aborted_connects'
。对于服务器中止的每个初始连接尝试,它都会增加 1。您可能会看到“读取授权数据包”作为错误消息的一部分;如果是这样,那也表明这是您需要的解决方案。
如果原因不是刚才描述的任何一个,您可能会遇到
BLOB
大于 的值的问题max_allowed_packet
,这可能会导致某些客户端出现此错误。有时您可能会看到一个ER_NET_PACKET_TOO_LARGE
错误,这表明您需要增加
max_allowed_packet
.