Wissensdatenbank
1 000 FAQs, 500 Anleitungen und erläuternde Videos. Hier gibt es nur Lösungen!
Behebung eines MySQL-Fehlers (Server nicht erreichbar)
Dieser Leitfaden hilft Ihnen bei der Behebung eines Fehlers vom Typ „Ungültige Abfrage: Der MySQL-Server ist nicht mehr verfügbar“.
Einleitung
- Diese Art von Fehler entsteht oft dadurch, dass eine MySQL-Verbindung geöffnet bleibt, ohne dass innerhalb eines bestimmten Zeitraums Anfragen gesendet werden, woraufhin die Verbindung geschlossen wird: http://dev.mysql.com/doc/refman/5.7/en/gone-away.html
- Die Variablen
wait_timeoutundinteractive_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 nicht erreichbar“ zu vermeiden, gibt es verschiedene mögliche Ansätze:
Automatische Überprüfung und Wiederherstellung der Verbindung
Bevor Sie eine Anfrage ausführen, wird empfohlen, zu prüfen, ob die MySQL-Verbindung noch aktiv ist. Wenn die Verbindung unterbrochen wurde, können Sie sie automatisch wiederherstellen, bevor Sie mit Ihrer Anfrage 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() prü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 eines „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. Sie könnten beispielsweise einen geplanten Task (Cronjob) erstellen, der in regelmäßigen Abständen eine leichte Anfrage, wie z. B. SELECT 1;, sendet.
Anpassen der MySQL-Einstellungen (Cloud-Server)
Bei einem Cloud-Server können Sie die Werte der Variablen wait_timeout und interactive_timeout im MySQL-Menü Ihres Servers erhöhen, um die Dauer der Verbindung zu verlängern, bevor sie geschlossen wird.
Link zu dieser FAQ: https://faq.infomaniak.com/499
War diese FAQ nützlich?