很多人问这个问题,但之前的答案都没有解决我的问题。
我正在运行 CakePHP Web 应用程序,时常会连续出现 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_packet = 512M,但这并没有解决问题。
我拒绝相信有人发送大于 512MB 的数据包!我错过了什么吗?是否有一些缓存或队列经常被填满,重新启动会清除并使一切再次正常工作?
最佳答案
事实证明这是 CakePHP < 3.6.10 的一个错误
关于php - "MySQL server has gone away"后跟 "Got a packet bigger than ' max_allowed_packet ' bytes",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51944550/