X

Ошибка: Error 2013: Lost connection to MySQL server во время создания дампа через mysqldump

Столкнулся с тем, что при создании дампа большой базы получил ошибку Lost connection to MySQL server. Соответственно, дамп получился частичный и был не пригоден к использованию. В большинстве случаев избавиться от такой ошибки можно изменив параметры..

  • net_read_timeout - Количество секунд ожидания для получения дополнительных данных из соединения перед прекращением чтения. Когда сервер читает с клиента, net_read_timeout - это значение тайм-аута, определяющее, когда прерывать работу.
  • net_write_timeout - Количество секунд ожидания записи блока в соединение перед прерыванием записи. Когда сервер пишет клиенту, net_write_timeout - это значение времени ожидания, определяющее, когда следует прервать операцию.

Прежде всего смотрим какие значения используются сейчас, сделать это можно таким запросом

mysql> show global variables like '%timeout';
+-----------------------------+----------+
| Variable_name               | Value    |
+-----------------------------+----------+
| connect_timeout             | 10       |
| net_read_timeout            | 30       |  <<<<<<<
| net_write_timeout           | 60       |  <<<<<<<
| slave_net_timeout           | 3600     |
| wait_timeout                | 3800     |
+-----------------------------+----------+

Как видим значение по-умолчанию 30 и 60 секунд. Меняем их на значения больше

set global net_read_timeout = 300; 
set global net_write_timeout = 900;

Далее проверяем помогло или нет пробуя создать дамп. Если помогло, то не забудьте вернуть эти значения обратно к тем, что были установлены

set global net_read_timeout = 30;
set global net_write_timeout = 60;

Если не помогло, то другой распространненой причиной падения с этой ошибкой являются поврежденные innnodb таблицы. Попробуйте установить опцию

innodb_force_recovery = 1

в конфигурационном файле MySQL (my.cnf или аналоги) и перезапустить ее

systemctl restart mysql

Категории: MySQL Базы данных
Тэги: mysqlmysqldump