Две наиболее распространенные причины получения ошибки MySQL server has gone away (error 2006) это..
- Сервер закрыл соединение по таймауту.
Исправить можно так: проверить чтобы значение переменной wait_timeout в конфиг файле MySql - my.cnf было достаточным для выполнения скрипта.
На Debian: нужно выполнить1sudo
nano
/etc/mysql/my
.cnf
и установить wait_timeout = 600 ( значение задается в секундах, если ошибка не пропадет поиграйтесь с этим значением, чтобы найти оптимальное), после этого нужно рестартануть MySQL:
1sudo
/etc/init
.d
/mysql
restart
Я не проверял, но значение по-умолчанию для wait_timeout можно установить вплоть до 28800 секунд (8 часов).
- Сервер сбрасывает (отклоняет) неправильные или слишком большие пакеты. Если mysqldполучает пакет данных, который слишком большой или не корректный, он думает что что-то пошло не так или с клиентом случилась какая-то беда и закрывает соединение. Часто такая ошибка возникает при импорте дампов содержащих большие тексты.
Исправить можно так: вы можете увеличить максимальный размер пакета увеличив значениеmax_allowed_packet в файле my.cnf.
На Debian:нужно выполнить:1sudo
nano
/etc/mysql/my
.cnf
и установить max_allowed_packet = 64M (если ошибка не пропадет поиграйтесь с этим значением, чтобы найти оптимальное), после этого нужно рестартануть MySQL
1sudo
/etc/init
.d
/mysql
restart
Про max_allowed_packet я так же писал здесь: ERROR 2006 (HY000) - MySQL server has gone away
Если Вы получаете ошибку MySQL server has gone away (error 2006) при использовании драйвера MySQL ODBC – можете попробовать это решение.
Комментировать статьи на нашем сайте возможно только в течении 5 дней со дня публикации.