【问题标题】:"MySQL server has gone away" followed by "Got a packet bigger than 'max_allowed_packet' bytes"“MySQL 服务器已消失”,然后是“得到一个大于 'max_allowed_pa​​cket' 字节的数据包”
【发布时间】:2018-08-21 08:24:10
【问题描述】:

很多人问这个问题,但以前的答案都没有解决我的问题。

我正在运行一个 CakePHP 网络应用程序,并且每隔一段时间我就会连续出现 2 个错误:

MySQL server has gone away in [/var/www/html/vendor/cakephp/cakephp/src/Database/Driver/PDODriverTrait.php, line 159]

紧随其后

SQLSTATE[08S01]: Communication link failure: 1153 Got a packet bigger than 'max_allowed_packet' bytes

当尝试将新记录插入数据库时​​会发生这种情况。

在出现错误后,数据库连接似乎仍在工作,因为 PHP 仍然可以从中读取,但任何新的 INSERT 进入数据库都会导致另一个 Got a packet bigger than 'max_allowed_packet' bytes 错误。此时唯一的解决方案是重新启动 mySQL,否则该错误将永远出现在每隔一个 INSERT 上。

我已经按照建议在 my.cnf 中设置了 max_allowed_pa​​cket = 512M,但这并没有解决问题。

我拒绝相信有人正在发送大于 512MB 的数据包!我错过了什么吗?是否有一些缓存或队列经常被填满,重新启动会清除并使一切再次正常工作?

【问题讨论】:

  • 你的数据有多大?
  • @Altmish-E-Azam 它很小。今天早上当用户尝试注册时出现错误(字面意思是一个包含 5 个字段的发布请求)。
  • 你重启 MySQL 了吗?从 mysql 终端检查最大数据包大小show variables like 'max_allowed_packet'
  • @Altmish-E-Azam 是 max_allowed_packet | 536870912

标签: php mysql unix cakephp


【解决方案1】:

原来这是 CakePHP

固定在这里:https://github.com/cakephp/cakephp/pull/11668

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-11
    • 2012-10-24
    • 2014-11-28
    • 2010-09-10
    • 2018-09-13
    • 2020-11-12
    • 2012-02-07
    相关资源
    最近更新 更多