Многие спрашивают об этом, но ни один из предыдущих ответов не разрешил мою проблему.
Я запускаю веб-приложение 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
навсегда.
Я уже установил max_allowed_packet = 512M в my.cnf, как было предложено, и это не решило проблему.
Я отказываюсь верить, что кто-то отправляет пакет размером более 512 МБ! Я что-то пропустил? Есть ли какой-то кеш или очередь где-то, что так часто просто заполняется, что перезапуск очищается и заставляет все снова работать отлично?
Оказывается, это была ошибка с CakePHP <3.6.10
Исправлено: https://github.com/cakephp/cakephp/pull/11668