Ich habe versucht, eine große SQL-Datei über phpMyAdmin zu importieren ... Aber es wurde immer wieder ein Fehler angezeigt
'MySQL-Server ist weg'
Was ist zu tun?
mysql
phpmyadmin
FrancisMV123
quelle
quelle
max_allowed_packet
. Ein bisschen grob, aber wenn das funktioniert, können Sie einen vernünftigen Wert finden.Antworten:
Wie hier angegeben :
Bearbeiten:
Beachten Sie, dass für MySQL-Optionsdateien ihre Befehle nicht bereits als Kommentare verfügbar sind (wie z. B. in php.ini). Sie müssen also jede Änderung / zwicken in eingeben
my.cnf
odermy.ini
und legen Sie sie inmysql/data
Verzeichnis oder in einem der anderen Pfade, unter der richtigen Gruppe von Optionen wie[client]
,[myslqd]
usw. Zum Beispiel:Starten Sie dann den Server neu. Geben Sie den MySQL-Client ein, um ihre Werte abzurufen:
quelle
SHOW VARIABLES
MySQL-Abfrage ausführen), und die Datei, die ich importierte, hatte einige sehr große Datensätze. Ich habe die Datei my.ini geöffnet (ich habe Windows ausgeführt) und den Wert auf Folgendes gesetzt :max_allowed_packet = 64M
, MySQL neu gestartet und den Import erneut ausgeführt.wait_timeout
Linie findenFür mich hat diese Lösung nicht geklappt, also habe ich ausgeführt
in meinem SQL-Client.
Wenn dies bei laufendem MYSql-Dienst nicht geändert werden kann, sollten Sie den Dienst beenden und die Variable in der Datei "my.ini" ändern.
Beispielsweise:
quelle
php.ini
Testcomputer unter Windows musste ich sowohl die Datei (wie von @GBD in der Antwort vorgeschlagen) als auch die MySQL-Konfigurationsdatei ändernmy.ini
, damit sie funktioniert.SHOW variables LIKE 'max_allowed_packet'
max_allowed_packet
in einem Client und das anschließende Importieren der großen.sql
Datei in einer anderen Sitzung funktioniert einwandfrei.Wenn Sie an XAMPP arbeiten, können Sie das Problem mit den folgenden Änderungen beheben, dass MySQL Server nicht mehr funktioniert.
Öffnen Sie Ihre my.ini-Datei. Der Speicherort von my.ini ist (D: \ xampp \ mysql \ bin \ my.ini).
Ändern Sie die folgenden Variablenwerte
quelle
Wenn Sie mit Standardwerten arbeiten, haben Sie viel Platz, um Ihre MySQL-Konfiguration zu optimieren.
Der erste Schritt, den ich empfehle, besteht darin, das max_allowed_packet auf 128 MB zu erhöhen.
Laden Sie dann das MySQL Tuning Primer-Skript herunter und führen Sie es aus. Es enthält Empfehlungen für verschiedene Aspekte Ihrer Konfiguration, um eine bessere Leistung zu erzielen.
Sehen Sie sich auch an, wie Sie Ihre Timeout-Werte sowohl in MySQL als auch in PHP anpassen.
Wie groß (Dateigröße) ist die Datei, die Sie importieren, und können Sie die Datei mithilfe des MySQL-Befehlszeilenclients anstelle von PHPMyAdmin importieren?
quelle
Wenn Sie MAMP unter OS X verwenden, müssen Sie den
max_allowed_packet
Wert in der Vorlage für MySQL ändern .Sie finden es unter: Datei> Vorlage bearbeiten> MySQL my.cnf
Dann suchen Sie einfach nach
max_allowed_packet
, ändern Sie den Wert und speichern Sie.quelle
Ich habe mein Problem mit dieser kurzen Datei /etc/mysql/my.cnf gelöst:
quelle
[mysqld]
Der andere Grund, warum dies passieren kann, ist, dass der Speicher knapp wird. Überprüfen Sie / var / log / messages und stellen Sie sicher, dass Ihre my.cnf nicht so eingerichtet ist, dass mysqld mehr Speicher zuweist als Ihr Computer.
Ihr mysqld-Prozess kann tatsächlich vom Kernel beendet und dann vom "safe_mysqld" -Prozess neu gestartet werden, ohne dass Sie es merken.
Verwenden Sie top und beobachten Sie die Speicherzuordnung, während sie ausgeführt wird, um festzustellen, wie viel Headroom Sie haben.
Erstellen Sie eine Sicherungskopie von my.cnf, bevor Sie sie ändern.
quelle
Ich hatte diesen und andere verwandte Fehler, als ich mit 16 GB SQL-Datei importierte. Bearbeiten Sie für mich my.ini und legen Sie im Abschnitt [mysqld] Folgendes fest (basierend auf mehreren verschiedenen Beiträgen):
Wenn Sie unter Windows ausgeführt werden, rufen Sie die Systemsteuerung und die Dienste auf und sehen Sie sich die Details zu MySQL an. Dort sehen Sie, wo sich my.ini befindet. Starten Sie dann nach dem Bearbeiten und Speichern von my.ini den MySQL-Dienst neu (oder starten Sie den Computer neu).
Wenn Sie HeidiSQL verwenden, können Sie damit auch einige oder alle festlegen.
quelle
Ich habe "max_allowed_packet" auf 1024M aktualisiert, aber es hat immer noch nicht funktioniert. Es stellte sich heraus, dass mein Bereitstellungsskript ausgeführt wurde:
Stellen Sie sicher, dass Sie explizit eine größere Zahl in der Befehlszeile angeben, wenn Sie dies auf diese Weise tun.
quelle
Wenn Ihre Daten
BLOB
Daten enthalten:Beachten Sie, dass ein Import von Daten aus der Befehlszeile die BLOB-Daten zu ersticken scheint, was zu dem Fehler "Der MySQL-Server ist verschwunden" führt.
Um dies zu vermeiden, erstellen Sie den mysqldump neu, jedoch mit dem
--hex-blob
Flag:http://dev.mysql.com/doc/refman/5.7/en/mysqldump.html#option_mysqldump_hex-blob
Dadurch wird die Datendatei mit Hex-Werten und nicht mit Binärwerten unter anderem Text ausgegeben.
PhpMyAdmin hat auch die Option "Binärspalten in hexadezimaler Notation ausgeben (zum Beispiel wird" abc "zu 0x616263)" ", was gut funktioniert.
Beachten Sie, dass es einen langjährigen Fehler gibt (Stand Dezember 2015), der bedeutet, dass
GEOM
Spalten nicht konvertiert werden: Sichern Sie eine Tabelle mit einer GEOMETRY-Spalte mit mysqldump? Die Verwendung eines Programms wie PhpMyAdmin scheint daher die einzige Problemumgehung zu sein (die oben angegebene Option konvertiert GEOM-Spalten korrekt).quelle
Wenn das Fehlschlagen lange dauert, vergrößern Sie die
wait_timeout
Variable.Wenn dies sofort fehlschlägt, vergrößern Sie die
max_allowed_packet
Variable. Wenn es immer noch nicht funktioniert, stellen Sie sicher, dass der Befehl gültiges SQL ist. Meins hatte ungehinderte Zitate, die alles vermasselten.Wenn möglich, sollten Sie auch die Anzahl der Einfügungen eines einzelnen SQL-Befehls auf beispielsweise 1000 begrenzen. Sie können ein Skript erstellen, das mehrere Anweisungen aus einer einzigen erstellt, indem Sie den Teil INSERT ... alle n Einfügungen erneut einführen.
quelle
Ich habe einen ähnlichen Fehler. Um dies zu lösen, öffnen Sie einfach die Datei my.ini. Hier in Zeile Nr. 36 ändern Sie den Wert der maximal zulässigen Paketgröße, dh. max_allowed_packet = 20M
quelle
Stellen Sie sicher, dass der mysqld-Prozess aufgrund von Service-Managern wie systemd nicht neu gestartet wird.
Ich hatte dieses Problem in Vagrant mit Centos 7. Konfigurationsänderungen haben nicht geholfen. Es stellte sich heraus, dass systemd jedes Mal den mysqld-Dienst beendet hat, wenn zu viel Speicher benötigt wurde.
quelle
Ich hatte heute einen ähnlichen Fehler beim Duplizieren der Datenbank (der MySQL-Server ist verschwunden ...), aber als ich versuchte, mysql.server neu zu starten, wurde ein Fehler angezeigt
So habe ich es gelöst: Ich habe Applications / Utilities / geöffnet und Activity Monitor ausgeführt
dann konnte das fehlerproblem mit gelöst werden
quelle
Ich mache einige große Berechnungen, bei denen die MySQL-Verbindung lange und mit hohen Datenmengen bleibt. Ich war mit diesem "Mysql go away Problem" konfrontiert. Also habe ich versucht, die Abfragen nicht zu optimieren, aber das hat mir nicht geholfen, dann habe ich das Limit für MySQL-Variablen erhöht, das standardmäßig auf einen niedrigeren Wert eingestellt ist.
wait_timeout max_allowed_packet
Was auch immer zu Ihnen passt, sollte die beliebige Zahl * 1024 (Bytes) sein. Sie können sich mit dem Befehl ' mysql -u username - p ' am Terminal anmelden und diese variablen Grenzwerte überprüfen und ändern.
quelle
Für GoDaddy Shared Hosting
Auf gemeinsam genutzten GoDaddy-Hosting-Konten ist es schwierig, die PHP.ini-Dateien usw. zu optimieren. Es gibt jedoch einen anderen Weg und es hat einfach perfekt für mich funktioniert. (Ich habe gerade erfolgreich eine 3,8 MB große SQL-Textdatei mit 3100 Zeilen und 145 Spalten hochgeladen. Mit dem Befehl IMPORT in phpMyAdmin wurde der gefürchtete MySQL-Server- Fehler behoben und es wurden keine weiteren Informationen angezeigt .)
Ich fand, dass Matt Butcher die richtige Antwort hatte. Wie Matt hatte ich alle möglichen Tricks ausprobiert, vom Exportieren von MySQL-Datenbanken in mundgerechten Blöcken bis zum Schreiben von Skripten, die große Importe in kleinere aufteilen. Aber hier ist, was funktioniert hat:
(1) CPANEL ---> DATEIEN (Gruppe) ---> SICHERUNG
(2a) Unter der Überschrift "Teilweise Sicherungen" ...
(2b) Unter "MySQL-Datenbanksicherung herunterladen"
(2c) Wählen Sie Ihre Datenbank aus und laden Sie eine Sicherung herunter (dieser Schritt optional, aber sinnvoll).
(3a) Direkt rechts von 2b unter der Überschrift "Wiederherstellen einer MySQL-Datenbanksicherung"
(3b) Wählen Sie die .SQL-Importdatei von Ihrem lokalen Laufwerk aus.
(3c) Das wahre Glück liegt bei Ihnen (in Kürze ...) 5 Sekunden
Anmerkungen:
a. Wenn Sie sich nicht sicher sind, wie Sie eine .SQL-Importdatei erstellen sollen, exportieren Sie mit phpMyAdmin eine Tabelle und ändern Sie diese Dateistruktur.
QUELLE: Matt Butcher 2010 Artikel
quelle
Wenn Erhöhen
max_allowed_packet
nicht hilft.Beim Importieren einer
.sql
Datei in meine Datenbank über Sequel Pro wurde der gleiche Fehler wie bei Ihnen angezeigt.Der Fehler blieb auch nach dem Erhöhen von
max_allowed_packet
to bestehen,512M
sodass ich den Import stattdessen in der Befehlszeile ausführte mit:Es gab den folgenden Fehler:
Ich habe ein paar hilfreiche Fragen zu StackOverflow gefunden:
In meinem Fall war meine
.sql
Datei etwas beschädigt oder so. Der MySQL-Dump, den wir erhalten, besteht aus zwei Zip-Dateien, die miteinander verkettet und dann entpackt werden müssen. Ich denke, das Entpacken wurde anfangs unterbrochen und die Datei mit einigen seltsamen Zeichen und Codierungen belassen. Es hat bei mir funktioniert, einen neuen MySQL-Dump zu bekommen und ihn richtig zu entpacken.Ich wollte dies hier nur hinzufügen, falls andere feststellen, dass das Erhöhen der
max_allowed_packet
Variablen nicht hilfreich ist.quelle
Keine der Lösungen bezüglich Paketgröße oder Zeitüberschreitung machte für mich einen Unterschied. Ich musste ssl deaktivieren
https://dev.mysql.com/doc/refman/5.7/en/encrypted-connections.html
quelle
Ich habe das gleiche Problem mit
In der Datei \ xampp \ mysql \ bin \ my.ini von phpmyadmin erhalten wir nur
Das ist nur für mysqldump -u root -p Datenbankname. Ich habe mein Problem behoben, indem ich den obigen Code durch ersetzt habe
quelle