406 Stimmen

Fehlercode: 2013. Verbindung zum MySQL-Server während der Abfrage verloren

Ich habe die Fehlercode: 2013. Verbindung zum MySQL-Server während der Abfrage verloren Fehler, als ich versuchte, mit MySQL Workbench einen Index zu einer Tabelle hinzuzufügen. Ich habe auch festgestellt, dass der Fehler immer dann auftritt, wenn ich eine lange Abfrage ausführe.

Ist es möglich, den Timeout-Wert zu erhöhen?

15voto

Thet Htun Punkte 431

In meinem Fall hat es nicht funktioniert, das Intervall für den Verbindungs-Timeout auf 6000 oder etwas höher zu setzen.

Ich habe nur das getan, was die Werkbank mir vorgibt zu tun.

Die maximale Zeitspanne, die die Abfrage benötigt, um Daten vom DBMS zurückzugeben. Setzen Sie 0, um das Lese-Timeout zu überspringen.

Auf dem Mac Einstellungen -> SQL Editor -> Gehen Sie zu MySQL-Sitzung -> setzen Sie das Zeitintervall für das Lesen der Verbindung auf 0.

Und es funktioniert

12voto

Nanhe Kumar Punkte 14132

Es gibt drei mögliche Ursachen für diese Fehlermeldung

  1. Normalerweise deutet dies auf Probleme mit der Netzwerkverbindung hin, und Sie sollten den Zustand Ihres Netzwerks überprüfen, wenn dieser Fehler häufig auftritt
  2. Manchmal tritt das Formular "während der Abfrage" auf, wenn Millionen von Zeilen als Teil einer oder mehrerer Abfragen gesendet werden.
  3. Seltener kann es passieren, wenn der Client versucht, die erste Verbindung zum Server herzustellen

Für mehr Details lesen >>

Ursache 2 :

SET GLOBAL interactive_timeout=60;

vom Standardwert von 30 Sekunden auf 60 Sekunden oder länger

Ursache 3 :

SET GLOBAL connect_timeout=60;

10voto

Maksym Polshcha Punkte 17488

Sie sollten die Eigenschaften "interactive_timeout" und "wait_timeout" in der mysql-Konfigurationsdatei auf die von Ihnen benötigten Werte setzen.

8voto

Matt V Punkte 93

Wenn Sie dieses Problem bei der Wiederherstellung einer großen Dump-Datei haben und ausschließen können, dass es etwas mit dem Netzwerk zu tun hat (z.B. Ausführung auf localhost), dann könnte meine Lösung hilfreich sein.

Mein mysqldump enthielt mindestens ein INSERT, das für mysql zu groß war, um es zu berechnen. Sie können diese Variable anzeigen, indem Sie Folgendes eingeben show variables like "net_buffer_length"; innerhalb Ihres mysql-cli. Sie haben drei Möglichkeiten:

  • net_buffer_length in mysql erhöhen -> dies würde einen Server-Neustart erfordern
  • Dump erstellen mit --skip-extended-insert pro Einfügung wird eine Zeile verwendet -> obwohl diese Dumps viel angenehmer zu lesen sind, ist dies für große Dumps > 1GB nicht geeignet, da es sehr langsam ist
  • Dump mit erweiterten Inserts erstellen (was der Standard ist), aber die Netzpufferlänge begrenzen, z. B. mit --net-buffer_length NR_OF_BYTES wobei NR_OF_BYTES kleiner ist als die net_buffer_length des Servers -> Ich denke, dies ist die beste Lösung, auch wenn ein langsamerer Neustart des Servers nicht erforderlich ist.

I mysqldump --skip-comments --set-charset --default-character-set=utf8 --single-transaction --net-buffer_length 4096 DBX > dumpfile

8voto

Avinash Punkte 141

Soweit ich verstanden habe, wurde dieser Fehler durch folgende Faktoren verursacht read timeout et max allowed packet Der Standardwert ist 4M. Wenn Ihre Abfragedatei größer als 4Mb ist, erhalten Sie eine Fehlermeldung. bei mir hat das funktioniert

  1. das Zeitlimit für das Lesen ändern. Zum Ändern gehen Sie zu Workbench Edit Preferences SQL Editor enter image description here

2. Ändern Sie die max_allowed_packet manuell durch Bearbeiten der Datei my.ini . zur Bearbeitung gehen Sie zu "C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" . Der Ordner ProgramData Der Ordner ist versteckt. Wenn Sie ihn nicht sehen, wählen Sie in den Ansichtseinstellungen die Option Versteckte Datei anzeigen. max_allowed_packet = 16M in my.ini Datei. 3. Starten Sie MySQL neu. Für den Neustart gehen Sie zu win+ R -> services.msc und starten Sie MySQL neu.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X