366 Stimmen

FEHLER 2006 (HY000): MySQL-Server hat sich verabschiedet

Ich erhalte diesen Fehler, wenn ich versuche, eine große SQL-Datei (eine große INSERT Abfrage).

mysql>  source file.sql
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    2
Current database: *** NONE ***

ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    3
Current database: *** NONE ***

In der Tabelle wird nichts aktualisiert. Ich habe versucht, die Tabelle/Datenbank zu löschen und rückgängig zu machen sowie MySQL neu zu starten. Keine dieser Maßnahmen löst das Problem.

Hier ist meine maximale Paketgröße:

+--------------------+---------+
| Variable_name      | Value   |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+

Hier ist die Dateigröße:

$ ls -s file.sql 
79512 file.sql

Wenn ich die andere Methode ausprobiere...

$ ./mysql -u root -p my_db < file.sql
Enter password: 
ERROR 2006 (HY000) at line 1: MySQL server has gone away

5voto

Rahul Punkte 903

Wenn Sie einen Mac haben und mysql wie ich über brew installiert haben, funktioniert folgendes.

  1. cp $(brew --prefix mysql)/support-files/my-default.cnf /usr/local/etc/my.cnf

Quelle: Wo ist bei Homebrew-Mysql-Installationen die Datei my.cnf?

  1. hinzufügen. max_allowed_packet=1073741824 a /usr/local/etc/my.cnf

  2. mysql.server restart

4voto

Haron Punkte 1820

Ich hatte das gleiche Problem in XAMMP

Modus-01: Ich habe max_allowed_packet in der D:\xampp\mysql\bin\my.ini Datei wie die unten stehende:

max_erlaubtes_Paket=500M

Zum Schluss starten Sie den MySQL-Dienst einmal neu und fertig.

Metode-02:

der einfachere Weg, wenn Sie XAMPP verwenden. Öffnen Sie das XAMPP-Kontrollfeld und klicken Sie auf die Schaltfläche config im Abschnitt mysql.
enter image description here

Klicken Sie nun auf die my.ini und sie wird im Editor geöffnet. Aktualisieren Sie max_allowed_packet auf die von Ihnen gewünschte Größe.

enter image description here

Starten Sie dann den mysql-Dienst neu. Klicken Sie auf "Stopp" für den Mysql-Dienst und dann auf "Neu starten". Warten Sie ein paar Minuten. enter image description here enter image description here

Versuchen Sie dann, Ihre Mysql-Abfrage erneut auszuführen. Ich hoffe, es wird funktionieren.

3voto

zhihong Punkte 1638

Ich stieß auf diesen Fehler, wenn ich Mysql Cluster verwenden, ich weiß nicht, diese Frage ist von einem Cluster Verwendung oder nicht. Da der Fehler ist genau das gleiche, so geben meine Lösung hier. Ich bekomme diesen Fehler, weil die Datenknoten plötzlich abstürzen. Aber wenn die Knoten abstürzen, können Sie immer noch das richtige Ergebnis mit cmd erhalten:

ndb_mgm -e 'ALL REPORT MEMORYUSAGE'

Und der mysqld funktioniert auch richtig, so dass ich zunächst nicht verstehen kann, was falsch ist. Und etwa 5 Minuten später zeigt ndb_mgm Ergebnis keine Daten Knoten arbeiten. Dann erkenne ich das Problem. Versuchen Sie also, alle Datenknoten neu zu starten, dann ist der mysql-Server wieder da und alles ist OK.

Aber eine Sache ist seltsam zu mir, nachdem ich mysql Server für einige Abfragen verloren, wenn ich cmd wie verwenden show tables kann ich immer noch die Rückgabeinformationen erhalten wie 33 rows in set (5.57 sec) , aber es werden keine Tabelleninformationen angezeigt.

3voto

Hermann Schwarz Punkte 1118

Hinzufügen max_allowed_packet=64M a [mysqld]

[mysqld] 
max_allowed_packet=64M

Starten Sie den MySQL-Server neu.

2voto

4braincells Punkte 73

Diese Fehlermeldung tritt auch auf, wenn Sie das SCHEMA mit einer anderen COLLATION erstellt haben als die, die im Dump verwendet wird. Wenn also der Dump Folgendes enthält

CREATE TABLE `mytab` (
..
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

sollten Sie dies auch in der SCHEMA-Zusammenstellung berücksichtigen:

CREATE SCHEMA myschema COLLATE utf8_unicode_ci;

Ich hatte utf8mb4_general_ci im Schema verwendet, weil mein Skript von einer frischen V8-Installation stammte, jetzt stürzte das Laden einer DB auf der alten 5.7 ab und machte mich fast verrückt.

Vielleicht hilft Ihnen das, einige frustrierende Stunden zu sparen... :-)

(MacOS 10.3, mysql 5.7)

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