Как исправить “MySQL server has gone away” (error 2006)
Ищем причину MySQL error 2006: разрыв соединения, простой, большой пакет или перезапуск сервера.

MySQL server has gone away сообщает, что прежнее соединение больше не работает. Оно могло закрыться после простоя, оборваться при большом запросе или исчезнуть вместе с перезапущенным сервером. Поэтому менять таймаут и max_allowed_packet наугад не стоит. Сначала свяжем ошибку с тем, что происходило в приложении и базе.
Фиксируем момент разрыва
SHOW SESSION VARIABLES LIKE 'wait_timeout';
SHOW GLOBAL VARIABLES LIKE 'max_allowed_packet';
SHOW GLOBAL STATUS LIKE 'Uptime';Сравните ошибку со временем последнего успешного запроса, перезапуском сервера и журналом. wait_timeout относится к неактивному соединению, а не является универсальным пределом длительности SQL. У длительно работающего обработчика соединение может устареть, пока он занят другой работой.
Проверяем большой запрос
Если ошибка воспроизводится при импорте конкретной строки или BLOB, сравните её размер с max_allowed_packet на соответствующих сторонах. Пакет может быть большим даже при небольшой общей базе. Значение меняют под подтверждённый сценарий с учётом памяти и ограничений клиента, а не по принципу «чем больше, тем лучше».
Переподключение не равно повтору
Восстановить соединение можно, но результат предыдущей операции иногда неизвестен клиенту. Повтор INSERT после сбоя ответа способен создать дубликат. Транзакционный контекст старого соединения также не переносится в новое автоматически. Драйвер и приложение должны явно обрабатывать такой исход.
Для фоновых задач предусмотрите проверку или обновление соединения перед новой единицей работы, а для записей — устойчивую защиту от повторов. Не включайте бесконечный автоматический повтор всех запросов.
Повторите именно тот случай, в котором возникал сбой: длительный простой, большой импорт или перезапуск тестовой базы. Запишите найденную причину и изменённые настройки. Один короткий успешный запрос не покажет, перестал ли обрываться долгоживущий обработчик.
