Что означает ошибка MySQL 2013?


14

Я запускаю mysqldump на сервере mysql в cron (в качестве резервной копии) и получаю предупреждающие сообщения, такие как

mysqldump: Got error: 2013: Lost connection to MySQL server during query when doing refresh

Что означает эта ошибка MySQL (2013)? Я немного погуглил, и это не очень помогает ...

Напомним, что mysqldump подключается к подчиненному серверу MySQL, он работал, когда подключался к мастеру.

Ответы:


4

Это может быть очень плохо, 2013означает, что поток, обслуживающий mysqldumpпроцесс, умер. Это может быть связано с тем, что механизм InnoDB на сервере обнаружил ошибку при чтении файла базы данных для вашей базы данных. Поскольку mysqldumpдля создания резервной копии необходимо прочитать все страницы всей вашей базы данных, она может спровоцировать любое скрытое повреждение, которого ваше приложение может избежать во время своей повседневной деятельности.

Если вы запустите свою mysqlкоманду и она сообщит, что ваш идентификатор соединения является небольшим числом, то ваш сервер, вероятно, перезапустил себя. Вы должны проверить свой mysqld.logнемедленно, чтобы узнать, почему.


спасибо, что приняли мой ответ, что вы нашли в своем mysqld.log?
Дейв Чейни

Я видел низкий идентификатор соединения, который означает, что сервер перезапустился. Я не уверен, почему еще. Как мне проверить «скрытую коррупцию»
Рори

1
Если ваш сервер mysql перезапустил себя, в журнале mysql будет большой (прочитайте страницы отладки).
Дейв Чейни

11

2013 означает, что соединение с сервером пропало. Есть несколько возможностей:

  1. Кто-то KILLредактировал запрос
  2. Проблемы с сетью привели к смерти соединения
  3. Сервер упал / умер
  4. Твоя связь простаивала wait_timeoutи была убита
  5. Клиент не получал данные достаточно быстро net_wait_timeoutи был убит

1
Это net_write_timeout или net_wait_timeout ?
ks1322

также net_read_timeout= 600 и connect_timeout= 60

0

Вы открываете соединение, выполняете длительную операцию, не связанную с соединением, и затем пытаетесь выполнить запрос? в этом случае mysql, вероятно, разорвал соединение из-за wait_timeout. просто переподключите перед выдачей запроса.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.