“MySQL server has gone away” error 解决方案

MySQL server has gone away 错误信息意味着MySQL服务器(mysqld)超时并关闭了连接。 默认情况下,如果没有任何反应,MySQL 将在八小时(28800 秒)后关闭连接。 但是,在某些情况下,您的 Web 主机、DBA 或应用程序开发人员可能会减少此超时设置,如下所述。

MySQL server has gone away,解决这个错误可能会令人沮丧。 部分原因是,为了解决此错误,有时解决方案涉及多个层级原因、应用程序或服务配置更改。 本文包含我见过的针对此 MySQL 服务器一般错误的解决方案。 如果您发现此页面上未列出或链接的解决方案,请给我留言或发表评论。

1. MySQL server has gone away 日志示例

请记住,可以通过多种方式记录此错误,如下所列。 此外,有时,错误仅表明更深层次的潜在问题。 这意味着该错误可能是由于连接应用程序或远程服务中的问题或错误造成的。 在这种情况下,您需要检查具有相同时间戳的所有相关错误日志,以确定是否是另一个问题造成的。 应用程序性能监控解决方案和 PHP 堆栈跟踪工具可以提供帮助。 考虑到这一点,以下是 MySQL server has gone away error 的错误日志示例:

General error: 2006 MySQL server has gone away Error Code: 2013. Lost connection to MySQL server during query Warning: Error while sending QUERY packet PDOException: SQLSTATE[HY000]: General error: 2006 MySQL server has gone away