Heim  >  Artikel  >  Datenbank  >  Die Lösung für das Problem, dass der MySQL-Server verschwunden ist, wenn MySQL große Datenmengen importiert

Die Lösung für das Problem, dass der MySQL-Server verschwunden ist, wenn MySQL große Datenmengen importiert

jacklove
jackloveOriginal
2018-06-08 23:20:362678Durchsuche

Aus beruflichen Gründen muss ich 200 Mio. SQL in die Benutzerbibliothek importieren.

Führen Sie den Befehl aus:

mysql> use user
Database changed
mysql> source /tmp/user.sql

Während des Importvorgangs MySQL Server ist verschwunden Fehler, Datenimport fehlgeschlagen.

Die Fehlermeldung lautet wie folgt:

ERROR 2006 (HY000): MySQL server has gone awayERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    11Current database: userERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    12Current database: userERROR 2006 (HY000): MySQL server has gone awayERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    13Current database: user

dachte zunächst, dass es durch einen Timeout verursacht wurde, also die Werte von connect_timeout und wait_timeout wurden erhöht.

Das Problem bleibt nach der erneuten Ausführung bestehen.
Lösung:

Überprüfen Sie die Informationen und finden Sie den Parameter max_allowed_packet
Die offizielle Erklärung besteht darin, ihn entsprechend zu erhöhen Der Parameter max_allowed_packet ermöglicht es dem System, mehr Erweiterungsspeicher für die Verarbeitung zuzuweisen, wenn große Datenmengen vom Client zum Server übertragen werden.

Sehen Sie sich den Wert von mysql max_allowed_packet

mysql> show global variables like 'max_allowed_packet';
+--------------------+---------+| Variable_name      | Value   |
+--------------------+---------+| max_allowed_packet | 4194304 |
+--------------------+---------+

an und Sie können sehen, dass er 4M beträgt, und erhöhen Sie ihn dann auf 256M(1024* 1024*256)

mysql> set global max_allowed_packet=268435456;
Query OK, 0 rows affected (0.00 sec)mysql> show global variables like 'max_allowed_packet';
+--------------------+-----------+| Variable_name      | Value     |
+--------------------+-----------+| max_allowed_packet | 268435456 |
+--------------------+-----------+1 row in set (0.00 sec)

Führen Sie nach der Änderung den Import aus, alles ist normal und das Problem ist gelöst.
Hinweis:
Verwenden Sie den Befehl set global, um den Wert von max_allowed_packet zu ändern. Nach dem Neustart von MySQL wird er ungültig und auf den Standardwert zurückgesetzt.

Wenn Sie nach dem Neustart keine Wiederherstellung wünschen, können Sie die Datei my.cnf öffnen und max_allowed_packet = 256M hinzufügen.

In diesem Artikel wird die Lösung für das Problem erläutert, dass der MySQL-Server beim Importieren großer Datenmengen in MySQL verschwunden ist. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Instanzen von MySQL, die nach Daten im Umkreis von N Kilometern in der Nähe suchen

MySQL-Methode zur automatischen Wiederherstellung der Verbindung, wenn die Verbindung unterbrochen wird

php implementiert eine Klasse zum Konvertieren von HTML-Entitätsnummern und Nicht-ASCII-Strings

Das obige ist der detaillierte Inhalt vonDie Lösung für das Problem, dass der MySQL-Server verschwunden ist, wenn MySQL große Datenmengen importiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn