1000 FAQ, 500 Anleitungen und Lernvideos. Hier gibt es nur Lösungen!
Beheben eines MySQL-Fehlers (Server ist weg)
Diese Anleitung hilft Ihnen, einen Fehler des Typs "Ungültige Abfrage: MySQL-Server ist weg
" zu beheben.
Vorwort
- Dieser Fehler tritt häufig auf, wenn eine MySQL-Verbindung offen gehalten wird, ohne dass innerhalb eines bestimmten Zeitraums Abfragen gesendet werden, nach dem die Verbindung geschlossen wird: http://dev.mysql.com/doc/refman/5.7/en/gone-away.html
- Die Variablen
wait_timeout
undinteractive_timeout
, die diese Trennung steuern, sind auf 30 Sekunden eingestellt: http://dev.mysql.com/doc/refman/5.0/en/communication-errors.html
Lösungen
Um den Fehler "MySQL-Server ist weg" zu vermeiden, gibt es mehrere mögliche Ansätze:
Überprüfung und automatische Wiederverbindung
Bevor eine Abfrage ausgeführt wird, wird empfohlen, zu überprüfen, ob die MySQL-Verbindung noch aktiv ist. Wenn die Verbindung geschlossen wurde, können Sie sie automatisch wiederherstellen, bevor Sie mit Ihrer Abfrage fortfahren. Hier ist ein Beispiel in PHP:
if (!mysqli_ping($connexion)) {
mysqli_close($connexion);
$connexion = mysqli_connect($host, $user, $password, $database);
}
Die Funktion mysqli_ping()
überprüft, ob die Verbindung noch gültig ist. Wenn dies nicht der Fall ist, schließt das Skript die Verbindung und öffnet eine neue.
Regelmäßiges Senden von "Ping"
Eine andere Möglichkeit besteht darin, ein Skript auszuführen, das regelmäßig einen "Ping" an die Datenbank sendet, um die Verbindung aktiv zu halten. Zum Beispiel könnten Sie einen geplanten Auftrag (Cron-Job) erstellen, der in regelmäßigen Abständen eine leichte Abfrage, wie SELECT 1;
, sendet.
Anpassung der MySQL-Parameter (Cloud-Server)
Mit einem Cloud-Server können Sie die Werte der Variablen wait_timeout
und interactive_timeout
über das MySQL-Menü Ihres Servers erhöhen, um die Dauer der Verbindung zu verlängern, bevor sie geschlossen wird.