Ich versuche, eine MySQL-Dump-Datei zu importieren.
Die Datei wurde auf einem Linux-Server erstellt, ich versuche unter Windows zu importieren
Ich habe mich in die Kommandozeile eingeloggt und ausgeführt:
SOURCE c:/dump.sql
Dies scheint jedoch einige Probleme mit dem Zeichensatz verursacht zu haben (insbesondere bei intelligenten Anführungszeichen und anderen nicht standardmäßigen Interpunktionen).
Es wurde mir vorgeschlagen, dass ich renne:
mysql -u username -d dbase < c:\dump.sql
Wenn ich das versuche, bekomme ich den Fehler
ERROR 2006 (HY000) at line 149351: MySQL server has gone away
Ein bisschen googeln deutete darauf hin, dass dies mit dem Schalter max_allowed_packet zu tun hatte, aber ich habe es versucht und es hat nicht funktioniert. Hat jemand eine Idee was das sein könnte?
Wenn jemand einen Vorschlag zum Problem mit dem Zeichensatz hat, wäre dies ebenfalls hilfreich.
Antworten:
Mein erster Instinkt nach dem Lesen der Fehlermeldung im Fragentitel war, die Erhöhung von max_allowed_packet vorzuschlagen. Sie haben erwähnt, dass Sie "diesen Schalter" ausprobiert haben und es nicht funktioniert hat. Können Sie bestätigen, dass Sie die Konfigurationsdatei des Servers korrekt geändert haben? Ihre Formulierung lässt es so klingen, als hätten Sie versucht, dies als Befehlszeilenschalter in der Client-Befehlszeile von mysql.exe zu verwenden, was nicht dazu führen würde, dass der Server das Verhalten ändert.
Kurz gesagt, Sie sollten versuchen, die my.cnf-Datei zu suchen und zu bearbeiten, die Ihr Server derzeit verwendet.
[mysqld]
Ändern Sie im Abschnitt die Einstellungen für max_allowed_packet in etwaVergessen Sie nicht, den Server nach dem Ändern der Konfiguration neu zu starten.
Ich habe 32M (ein lächerlich großer Wert) als Beispiel verwendet. Da Ihre Abfrage enorm zu sein scheint, sollten Sie diesen Wert (oder vielleicht sogar 64 MB, wenn Sie über genügend RAM verfügen) ausprobieren, um festzustellen, ob er funktioniert.
Eine andere Möglichkeit besteht darin, den Server unverändert zu lassen und das Verhalten des Clients zu ändern, der zum Generieren des SQL-Dumps verwendet wird. Sagen Sie ihm, er soll die Größe der einzelnen Abfragen auf unter 1 MB beschränken - das sollte auch reichen.
Weitere Einzelheiten finden Sie unter B.1.2.10. Paket im MySQL-Handbuch zu groß .
quelle
Unter MySQL 5.7.24 lag es an der alten Konfiguration von MySQL 5.6
Die folgende Option ist obligatorisch, wenn die SQL-Version mit 5.7.5 oder höher identisch ist.
sql_mode=TRADITIONAL
Außerdem gibt es in /etc/my.cnf zwei max_allowed_packet-Parameter , der andere ist für mysqldump. Bitte beachten Sie das gleiche.
max_allowed_packet = <1G>
Meine Installation ist unter CentOS7.
quelle
Können Sie über die Linux-Box auf die MySQL-Instanz auf dem Windows-Server zugreifen?
Wenn ja, können Sie den Befehl auf der Linux-Box mit dem Schalter -h ausführen, um eine Verbindung zum Server auf der Windows-Box herzustellen?
Dies könnte Ihre Zeichensatzprobleme lösen , da Sie den Linux-Client auf der Originalverpackung verwenden, um den Import durchzuführen. (nur eine Vermutung)
quelle
Was sagt das MySQL-Protokoll?
Manchmal wird dieser Fehler auf dem Client gemeldet, wenn auf dem Server ein nicht korrigierbarer Fehler vorliegt. Dies kann ein Indikator für eine Beschädigung der Datenbanktabellen auf der Festplatte sein.
quelle
Hatte Ihr Konto ein Passwort? Möglicherweise müssen Sie den Schalter -p hinzufügen:
quelle