Wie hier angegeben :
Zwei der häufigsten Gründe (und Korrekturen) dafür, dass der MySQL-Server verschwunden ist (Fehler 2006), sind:
Der Server hat das Zeitlimit überschritten und die Verbindung geschlossen. Lösung:
-
Überprüfen Sie, ob die Variable wait_timeout in der my.cnf-Konfigurationsdatei Ihres mysqld groß genug ist. Unter Debian:
sudo nano /etc/mysql/my.cnf
, setzen Siewait_timeout = 600
Sekunden (Sie können diesen Wert verringern/schwächen, wenn Fehler 2006 weg ist), dannsudo /etc/init.d/mysql restart
. Ich habe es nicht überprüft, aber der Standardwert für "wait_timeout" könnte etwa 28800 Sekunden (8 Stunden) betragen. -
Der Server hat ein falsches oder zu großes Paket verworfen. Wenn mysqld ein zu großes oder falsches Paket erhält, geht es davon aus, dass beim Client etwas schief gelaufen 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
, setzen Siemax_allowed_packet = 64M
(Sie können diesen Wert nicht schwächen/verringern, wenn der Fehler 2006 weg ist), dannsudo /etc/init.d/mysql restart
.
Bearbeiten:
Beachten Sie, dass die Befehle von MySQL-Optionsdateien nicht bereits als Kommentare verfügbar sind (wie zum Beispiel in php.ini). Sie müssen also jede Änderung/Optimierung in my.cnf
eingeben oder my.ini
und platzieren Sie sie in mysql/data
Verzeichnis oder in einem der anderen Pfade unter der richtigen Gruppe von Optionen wie [client]
, [myslqd]
usw. Zum Beispiel:
[mysqld]
wait_timeout = 600
max_allowed_packet = 64M
Starten Sie dann den Server neu. Um ihre Werte zu erhalten, geben Sie den mysql-Client ein:
> select @@wait_timeout;
> select @@max_allowed_packet;