MySQL 服务器已经消失,PDO 和 max_allowed_packet 在 PHP

MySQL server has gone away, PDO and max_allowed_packet in PHP

您知道如何避免以下致命错误消息吗:

"...MySQL server has gone away".

我想这意味着与 MySQL 的 PDO 连接已经丢失。

我检查了 MySQL max_allowed_packet 变量等于 268435456(我认为这个值绰绰有余)。

没有办法"avoid"这个错误。当您失去与数据库服务器的连接时会发生此错误。发生这种情况的原因有多种。 MySQL server has gone away 错误最常见的原因是服务器超时并关闭了连接。

其他一些常见原因是:

  • 您(或数据库管理员)已终止 运行ning 线程。
  • 您试图在关闭与服务器的连接后运行查询。
  • 客户端 TCP/IP 连接超时。
  • 您遇到服务器端超时,客户端自动重连被禁用。
  • 还有更多。

从 MYSQL 文档中查看这个 link 以获取更多信息。

您可以检查 max_connections 并确保它们未达到 - 这是我记得您收到此错误的最常见原因。

感谢您的回答。经过几天的调查,我决定每 250 秒重置一次 PDO MySQL 连接。我知道这不是 class 解决方案中最好的,但它至少是避免问题的解决方案。