webentwicklung-frage-antwort-db.com.de

MYSQL-Fehler wird angezeigt: "Fehlercode: 2006 - MySQL-Server ist nicht mehr vorhanden"

Ich erhalte folgende Fehlermeldung, wenn ich versuche, die MYSQL-Datenbank zu importieren:

Error Code: 2013 - Lost connection to MySQL server during queryQuery:
Error Code: 2006 - MySQL server has gone away

Kann mir jemand sagen, was los ist?

22
meetpd

Hier können Sie mehr über diesen Fehler und verschiedene Möglichkeiten zur Vermeidung/Lösung erfahren

Aus den Dokumenten: 

Der häufigste Grund für den Fehler des MySQL-Servers ist, dass der Server das Zeitlimit überschritten hat und die Verbindung geschlossen wurde

9

Die Untersuchung zeigt, dass viele Lösungen korrekt über das Setzen des max_allowed_packet und des wait_timeout für mysql in my.cnf sprechen. kleines Addendum, dass die Standardinstallation von mysql auf Mac osx diese Datei nicht enthält. Möglicherweise müssen Sie sie zuerst unter /etc/my.cnf erstellen (dies ist nur ein Problem, wenn Sie die Standardinstallation von mysql anstelle eines Mamp-Stacks oder eines ähnlichen Typs verwenden.

inhalte von /etc/my.cnf, die dieses Problem für mich korrigiert haben:

[mysqld]
max_allowed_packet= 64M
wait_timeout= 6000
34
Rafe Hatfield

Dies ist häufig der Fall, wenn Ihre INSERT-Abfrage eine zu große einzeilige Anweisung mit mehreren Zeilen ist.

3
Bimal Poudel

Versuchen Sie die folgenden Fehlerbehebungen für 2006:

  • Server hat das Zeitlimit überschritten und die Verbindung wurde geschlossen. Wie zu beheben: Überprüfen Sie, ob die wait_timeout-Variable in der my.cnf-Konfigurationsdatei von mysqld groß genug ist. 

  • Der Server hat ein falsches oder zu großes Paket verworfen. Wenn mysqld ein zu großes oder falsches Paket erhält, wird davon ausgegangen, dass beim Client ein Fehler aufgetreten ist, und die Verbindung wird geschlossen. Sie können die maximale Paketgröße erhöhen, indem Sie den Wert von max_allowed_packet in der Datei my.cnf erhöhen.

3
CloudyMarble

Ich habe alle Lösungen ausprobiert und nichts hat funktioniert
Ich verwende die Workbench, um den Hostgator remote zu verbinden
Ich merkte, dass mysql server hostgator die Version 5.5 war und in meiner Workbench auf Version 5.6 eingerichtet ist
Als ich die Workbench auf 5.5 eingestellt habe, fing er an zu arbeiten 

bearbeiten Sie/preferences/mysql/default-Zielversion
 enter image description here

2
Rafael Sudbrack

Versuchen Sie, den MySQL-Server neu zu starten. Es ist möglich, dass der Server nicht ordnungsgemäß funktioniert, aber auch der SQL-Benachrichtigungsserver, der anzeigt, dass der Server läuft.

2
andrew

es gibt viele Gründe, warum dieses Problem bei Ihnen auftritt, hier Sie können alle möglichen Gründe finden. Ich persönlich habe mit der Paketgröße zu kämpfen, aber ich habe meine my.ini-Datei aktualisiert Zuvor habe ich die Variable max_allowed_packet überprüft, die mir 1048576B = 1 MB gegeben hatte, und ich habe ein Update auf 5 MB durchgeführt.

wählen Sie 1048576/1024/1024

wählen Sie 5242880/1024/1024

1
dennisbot

Zeigen Sie Ihre mySql-Variablen 

  • zeige Variablen wie 'max%'

  • set global max_allowed_packet = {PacketRANGE}; // gefällt mir 10485760;

  • zeige globale Variablen wie 'max_all%';

Genieße deine Kodierung hier

1
Shaam

In MySQL 5.7 kann dieser Fehler durch ein zu großes Kommunikationspaket erzeugt werden:

Wenn ein MySQL-Client oder der mysqld-Server ein Paket empfängt, das größer als die Anzahl der Bytes von max_allowed_packet ist, wird der Fehler ER_NET_PACKET_TOO_LARGE ausgegeben und die Verbindung wird geschlossen. Bei einigen Clients erhalten Sie möglicherweise während eines Abfragefehlers eine Verbindung zum MySQL-Server, wenn das Kommunikationspaket zu groß ist.

Ein Paket in MySQL ist:

Ein Kommunikationspaket ist eine einzelne SQL-Anweisung, die an den MySQL-Server gesendet wird, eine einzelne Zeile, die an den Client gesendet wird, oder ein binäres Protokollereignis, das von einem Master-Replikationsserver an einen Slave gesendet wird.

Sie finden das Dokument hier: DOC
Sie sollten versuchen, max_allowed_packet auf einen höheren Wert festzulegen (Standardwert ist 4 MB), um zu lösen, ob Ihr SQL-Skript diese Größe überschreitet. Sie können diesen Wert in einer Optionsdatei festlegen, damit Sie ihn nicht jedes Mal neu einrichten müssen. 
Unter Microsoft Windows Vista und höher können Sie max_allowed_packet in die Datei setzen 
% PROGRAMDATA%\MySQL\MySQL Server 5.7\my.ini 
oder 
% PROGRAMDATA%\MySQL\MySQL Server 5.7\my.cnf

wobei PROGRAMDATA = C:\ProgramData 
Mehr Infos (auch für andere S.O.) HIER

1
alcott80

Hier ist eine Alternative zur Bearbeitung der my.cnf-Datei. Sie können den Wert der globalen MySQL-Variablen festlegen, indem Sie sich am MySQL-Server anmelden.

Sie können die Liste aller globalen MySQL-Variablen und deren Werte mit dem folgenden Befehl überprüfen:

$> mysqladmin variables -u YourMysqlUsername -p

Sie können den Wert dieser Variablen auch überprüfen, indem Sie sich zuerst beim MySQL-Server anmelden:

$> mysql -u YourMysqlUsername -p

mysql> SHOW VARIABLES;

So prüfen Sie einen bestimmten Variablenwert:

mysql> SHOW VARIABLES LIKE 'max_allowed_packet';

Um den MySQL Server-Fehler Gone Away zu beheben, müssen Sie den Wert für .__ erhöhen. Wert der Variable max_allowed_packet.

mysql> SET GLOBAL max_allowed_packet=1072731894;
mysql> quit

Wenn Sie sich jetzt erneut bei MySQL anmelden und nach dem max_allowed_packet-Wert suchen, sollte der aktualisierte Wert angezeigt werden.

$> mysql -u YourMysqlUsername -p

mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
+--------------------+------------+
| Variable_name      | Value      |
+--------------------+------------+
| max_allowed_packet | 1072731136 |
+--------------------+------------+
1 row in set (0.00 sec)
0

AS von Tudor in seiner Reaktion erwähnt:

 The most common reason for the MySQL server has gone away error is that the 
 server timed out and closed the connection

Sie müssen die maximale Ausführungszeit und -größe ändern Sie können dazu die folgenden Befehle verwenden:

SET GLOBAL wait_timeout = 6000;
SET GLOBAL max_allowed_packet= 64M;

Sie sind SQL-Befehle, so dass Sie sie wie noramale Befehle ausführen können.

0
Peter verleg