Как исправить “MySQL server has gone away” (error 2006)

Две наиболее распространенные причины получения ошибки MySQL server has gone away (error 2006) это:

1) Сервер закрыл соединение по таймауту.
Исправить можно так: проверить чтобы значение переменной wait_timeout в конфиг файле MySQL — my.cnf было достаточным для выполнения скрипта.

На Debian нужно выполнить:

sudo nano /etc/mysql/my.cnf

и установить wait_timeout = 600 ( значение задается в секундах, если ошибка не пропадет поиграйтесь с этим значением, чтобы найти оптимальное), после этого нужно перезапустить MySQL:

sudo /etc/init.d/mysql restart

2) Сервер сбрасывает (отклоняет) неправильные или слишком большие пакеты. Если mysqld получает пакет данных, который слишком большой или не корректный, он думает что что-то пошло не так или с клиентом случилась какая-то беда и закрывает соединение. Часто такая ошибка возникает при импорте дампов содержащих большие тексты.
Исправить можно так: вы можете увеличить максимальный размер пакета увеличив значение max_allowed_packet в файле my.cnf.

На Debian: нужно выполнить:

sudo nano /etc/mysql/my.cnf

и установить max_allowed_packet = 64M (если ошибка не пропадет поиграйтесь с этим значением, чтобы найти оптимальное), после этого нужно перезапустить MySQL

sudo /etc/init.d/mysql restart

Добавить комментарий