Was bedeutet MySQL Error 2013?


14

Ich starte mysqldump auf einem MySQL-Server in einem Cron (als Backup) und bekomme Warnmeldungen wie

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

Was bedeutet dieser MySQL-Fehler (2013)? Ich habe ein bisschen gegoogelt und es ist nicht sehr hilfreich ...

In diesem Fall stellt mysqldump eine Verbindung zu einem MySQL-Slave-Server her, der bei der Verbindung zu einem Master verwendet wurde.

Antworten:


4

Dies könnte sehr schlimm sein, was 2013bedeutet, dass der Thread, der den mysqldumpProzess bedient, abgestorben ist. Dies kann daran liegen, dass die InnoDB-Engine auf dem Server beim Lesen der Datenbankdatei für Ihre Datenbank einen Fehler festgestellt hat. Da mysqldumpalle Seiten Ihrer gesamten Datenbank gelesen werden müssen, um die Sicherung durchzuführen, kann dies zu latenten Beschädigungen führen, die Ihre Anwendung während der täglichen Aktivitäten möglicherweise vermeidet.

Wenn Sie Ihren mysqlBefehl ausführen und er meldet, dass Ihre Verbindungs-ID niedrig ist, hat sich Ihr Server wahrscheinlich selbst neu gestartet. Sie sollten Ihre mysqld.logsofort überprüfen , um herauszufinden, warum.


Danke, dass Sie meine Antwort akzeptiert haben. Was haben Sie in Ihrem mysqld.log gefunden?
Dave Cheney

Ich habe die niedrige Verbindungs-ID gesehen, was bedeutet, dass der Server neu gestartet wurde. Ich weiß noch nicht warum. Wie überprüfe ich auf 'latente Korruption
Rory

1
Wenn Ihr MySQL-Server sich selbst neu gestartet hat, befindet sich im MySQL-Protokoll eine große (gelesene Seite mit Debug-Informationen).
Dave Cheney

11

2013 bedeutet, dass die Verbindung zum Server unterbrochen wurde. Es gibt verschiedene Möglichkeiten:

  1. Jemand hat KILLdie Abfrage bearbeitet
  2. Netzwerkprobleme führten dazu, dass die Verbindung unterbrochen wurde
  3. Der Server ist abgestürzt / gestorben
  4. Ihre Verbindung war für untätig wait_timeoutund wurde getötet
  5. Der Client hat die Daten nicht schnell genug abgerufen net_wait_timeoutund wurde getötet

1
Ist es net_write_timeout oder net_wait_timeout ?
ks1322

auch net_read_timeout= 600 und connect_timeout= 60
Samad

0

Öffnen Sie die Verbindung, führen Sie einen längeren Vorgang durch, an dem die Verbindung nicht beteiligt ist, und versuchen Sie dann die Abfrage? Wenn dies der Fall ist, hat mysql die Verbindung wahrscheinlich aufgrund des wait_timeout unterbrochen. Stellen Sie einfach eine neue Verbindung her, bevor Sie die Abfrage absenden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.