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

0voto

osexp2003 Punkte 2564

Ich habe alle oben genannten Lösungen ausprobiert, alle sind fehlgeschlagen.

Ich habe mich für die -h 127.0.0.1 statt der Verwendung von Standard var/run/mysqld/mysqld.sock .

0voto

Basil Cabrera Punkte 43

Die Beseitigung der Fehler, die Warnungen auslösten, war für mich die endgültige Lösung. Ich änderte auch die max_allowed_packet, was bei kleineren Dateien mit Fehlern half. Durch die Beseitigung der Fehler wurde der Prozess auch unglaublich beschleunigt.

-1voto

El Abogato Punkte 123

Wenn keine dieser Antworten das Problem löst, habe ich es gelöst, indem ich die Tabellen entfernt und sie auf diese Weise automatisch neu erstellt habe:

when creating the backup, first backup structure and be sure of add:
DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT
CREATE PROCEDURE / FUNCTION / EVENT
IF NOT EXISTS
AUTO_INCREMENT

dann verwenden Sie einfach dieses Backup mit Ihrer Datenbank und es wird die Tabellen, die Sie benötigen, entfernen und neu erstellen.

Wenn Sie dann eine Sicherungskopie der Daten erstellen und dasselbe tun, wird es funktionieren.

-4voto

ErJab Punkte 5478

Wie wäre es, den mysql-Client wie folgt zu verwenden?

mysql -h <hostname> -u username -p <databasename> < file.sql

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