MySQL 8.4 版本说明
此错误消息有三种可能的原因。
通常,它表示网络连接故障,如果经常出现此错误,则应检查您的网络状况。 如果错误消息包含 “在查询期间,” 这可能是您遇到的情况。
有时,当数百万行作为一项或多项查询的一部分发送时,会出现 “在查询期间” 形式。 如果您知道正在发生这种情况,则应尝试将 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
。