speicherort - typo3 mysql server has gone away




MySQL Server ist beim Importieren einer großen SQL-Datei verschwunden (11)

Ich habe versucht, eine große SQL-Datei über phpMyAdmin zu importieren ... Aber es zeigte immer Fehler

'MySQL-Server ist weg'

Was ist zu tun?


Für GoDaddy Shared Hosting

Auf GoDaddy-Shared-Hosting-Accounts ist es schwierig, die PHP.ini-Dateien zu optimieren. Es gibt jedoch einen anderen Weg und es hat einfach perfekt für mich funktioniert. (Ich habe gerade eine 3.8Mb .sql Textdatei hoch geladen, die 3100 Zeilen und 145 Spalten enthält. Mit dem IMPORT Befehl in phpMyAdmin bekam ich den gefürchteten MySQL Server weg und keine weiteren Informationen.)

Ich fand, dass Matt Butcher die richtige Antwort hatte. Wie Matt hatte ich alle möglichen Tricks ausprobiert, vom Export von MySQL-Datenbanken in mundgerechte Blöcke bis hin zum Schreiben von Skripten, die große Importe in kleinere zerlegen. Aber hier ist, was funktioniert hat:

(1) CPANEL ---> Dateien (Gruppe) ---> BACKUP

(2a) Unter "Teilweise Backups" Überschrift ...
(2b) Unter "Herunterladen einer MySQL Datenbank-Sicherung"
(2c) Wählen Sie Ihre Datenbank und laden Sie ein Backup (dieser Schritt ist optional, aber sinnvoll)

(3a) Direkt rechts neben 2b, unter der Überschrift "Wiederherstellen einer MySQL-Datenbanksicherung"
(3b) Wählen Sie die .SQL-Importdatei von Ihrem lokalen Laufwerk
(3c) Wahres Glück wird dir gehören (kurz ....) Meines dauerte ungefähr 5 Sekunden

Ich konnte diese Methode verwenden, um eine einzelne Tabelle zu importieren. Nichts anderes in meiner Datenbank war betroffen - aber davor soll sich der zweite Schritt schützen.

Anmerkungen:
ein. Wenn Sie nicht sicher sind, wie Sie eine .SQL-Importdatei erstellen, verwenden Sie phpMyAdmin, um eine Tabelle zu exportieren und diese Dateistruktur zu ändern.

Quelle: Matt Butcher 2010 Artikel


Der andere Grund dafür ist, dass der Arbeitsspeicher knapp wird. Überprüfen Sie / var / log / messages, und stellen Sie sicher, dass Ihre my.cnf nicht so eingerichtet ist, dass mysqld mehr Arbeitsspeicher als Ihre Maschine zuweist.

Ihr mysqld-Prozess kann tatsächlich vom Kernel gelöscht und dann durch den Prozess "safe_mysqld" neu gestartet werden, ohne dass Sie es bemerken.

Verwenden Sie oben und beobachten Sie die Speicherzuordnung, während es ausgeführt wird, um zu sehen, was Ihr Spielraum ist.

Erstellen Sie vor dem Ändern eine Sicherungskopie von my.cnf.


Ich habe "max_allowed_packet" auf 1024M aktualisiert, aber es funktionierte immer noch nicht. Es stellt sich heraus, dass mein Bereitstellungsskript ausgeführt wurde:

mysql --max_allowed_packet=512M --database=mydb -u root < .\db\db.sql

Stellen Sie sicher, dass Sie eine größere Zahl explizit von der Befehlszeile aus angeben, wenn Sie es auf diese Weise tun.


Ich habe einen ähnlichen Fehler .. um dies zu lösen, öffnen Sie einfach my.ini Datei..hier bei Zeile Nr. 36 ändern Sie den Wert der maximal zulässigen Paketgröße dh. max_allowed_packet = 20M


Ich hatte diesen Fehler und andere verwandte, als ich bei 16 GB SQL-Datei importierte. Für mich, editiere my.ini und setze folgendes (basierend auf verschiedenen Posts) im [mysqld] Abschnitt:

max_allowed_packet      = 110M
innodb_buffer_pool_size=511M
innodb_log_file_size=500M
innodb_log_buffer_size = 800M
net_read_timeout        = 600
net_write_timeout       = 600

Wenn Sie unter Windows laufen, gehen Sie zum Kontrollfeld, Dienste und schauen Sie sich die Details für MySQL an und Sie werden sehen, wo sich my.ini befindet. Nachdem Sie die Datei my.ini bearbeitet und gespeichert haben, starten Sie den mysql-Dienst neu (oder starten Sie den Computer neu).

Wenn Sie HeidiSQL verwenden, können Sie einige oder alle davon auch verwenden.


Ich hatte heute einen ähnlichen Fehler beim Duplizieren der Datenbank (MySQL Server ist weg ...), aber als ich versuchte, mysql.server Neustart neu zu starten, habe ich einen Fehler bekommen

ERROR! The server quit without updating PID ...

So habe ich es gelöst: Ich habe Anwendungen / Dienstprogramme / geöffnet und Activity Monitor ausgeführt

 quit mysqld

konnte dann das Fehlerproblem mit lösen

mysql.server restart

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. Konfiguration Tweaks half nicht. Es stellte sich heraus, dass es Systemd war, das den mysqld-Dienst jedes Mal abstürzte, wenn es zu viel Speicher benötigte.


Wenn Sie MAMP unter OS X verwenden, müssen Sie den Wert für max_allowed_packet in der Vorlage für MySQL ändern.

  1. Sie finden es unter: Datei> Vorlage bearbeiten> MySQL my.cnf

  2. Dann suche nach max_allowed_packet , ändere den Wert und speichere.

Hoffe, das hilft jemandem.


Wenn das wait_timeout lange dauert, vergrößern Sie die Variable wait_timeout .

Wenn es sofort fehlschlägt, vergrößern Sie die Variable max_allowed_packet ; es funktioniert immer noch nicht, stellen Sie sicher, dass der Befehl gültige SQL ist. Meine hatte keine Zitate, die alles vermasselten.

Wenn möglich, sollten Sie auch die Anzahl der Einfügungen eines einzelnen SQL-Befehls auf beispielsweise 1000 beschränken. Sie können ein Skript erstellen, das mehrere Anweisungen aus einem einzelnen Skript erstellt, indem Sie den INSERT ... -Teil alle n Einfügungen erneut einfügen.


Wie here gesagt:

Die zwei häufigsten Gründe (und Korrekturen) für den MySQL-Server sind weg (Fehler 2006):

Server hat die Zeit überschritten und die Verbindung geschlossen. Wie repariert man:

  1. Überprüfen Sie, ob die Variable wait_timeout in der my.cnf-Konfigurationsdatei von mysqld groß genug ist. Unter Debian: sudo nano /etc/mysql/my.cnf , setze wait_timeout = 600 Sekunden (du kannst diesen Wert wait_timeout = 600 / verringern, wenn der Fehler 2006 weg ist), dann sudo /etc/init.d/mysql restart . Ich habe es nicht überprüft, aber der Standardwert für wait_timeout liegt bei 28800 Sekunden (8 Stunden).

  2. Der Server hat ein falsches oder zu großes Paket gelöscht. Wenn mysqld ein Paket erhält, das zu groß oder falsch ist, geht es davon aus, dass etwas mit dem Client schief gegangen ist, und schließt die Verbindung. Sie können die maximale Paketgröße erhöhen, indem Sie den Wert von max_allowed_packet in der Datei my.cnf erhöhen. Unter Debian: sudo nano /etc/mysql/my.cnf , setze max_allowed_packet = 64M (du kannst diesen Wert max_allowed_packet = 64M / verringern, wenn der Fehler 2006 weg ist), dann sudo /etc/init.d/mysql restart .

Edit: Beachten Sie, dass MySQL-Optionsdateien ihre Befehle nicht bereits als Kommentare verfügbar haben (wie zB in der php.ini). Daher müssen Sie jede Änderung / Optimierung in my.cnf oder my.ini und sie in das my.cnf my.ini mysql/data oder in einen der anderen Pfade unter der richtigen Gruppe von Optionen wie [client] , [myslqd] ... [myslqd] . usw., zum Beispiel:
[mysqld]
wait_timeout = 600
max_allowed_packet = 64M
Dann starte den Server neu. Um ihre Werte zu erhalten, tippe die Konsole ein:
select @@wait_timeout;
select @@max_allowed_packet;


Wenn Sie an XAMPP arbeiten, dann können Sie den MySQL-Server mit folgenden Änderungen beheben.

Öffnen Sie Ihre my.ini-Datei. my.ini-Speicherort ist (D: \ xampp \ mysql \ bin \ my.ini)

Ändern Sie die folgenden Variablenwerte

max_allowed_packet = 64M
innodb_lock_wait_timeout = 500




phpmyadmin