14 Stimmen

Plötzliche Fehlermeldung "MySQL-Server ist nicht mehr verfügbar" in einer PHP-Website

Seit heute zeigt eine meiner Websites

Error Number: 2006
MySQL server has gone away

Es handelt sich um eine Kundenseite mit geringem Datenverkehr, die unter Apache 2.2.9 (Debian), PHP 5.2.6-1+lenny3 (mit CodeIgniter 1.7.1 Framework) und MySQL 5.0.51a läuft. Ich habe natürlich über den Fehler recherchiert, aber alle möglichen Lösungen deuten darauf hin, dass große Abfragen im Gange sind, die eine Zeitüberschreitung verursachen und die Verbindung zurücksetzen können, oder die Paketgrenzen erreichen. Dies ist jedoch nicht der Fall, es handelt sich um eine kleine Datenbank, die mit den einfachsten Abfragen verarbeitet wird. Um sicherzugehen, habe ich ein paar Abfragen erstellt, die eine Zeile zurückgeben, aber immer noch den gleichen Fehler.

Die Datenbankzugangsdaten sind in Ordnung, ich kann mich sogar direkt in mysql einloggen, einige Abfragen der Website ausführen und erhalte sofort die richtigen Daten. Es gibt mehrere andere Websites auf dem gleichen Server und Verbindungen zur Datenbank, viel größere Websites, und sie alle haben keine Probleme.

Ich habe es versucht:

  • Neustart von MySQL
  • Neustart des gesamten Servers
  • Suche nach Fehlern in den Protokollen (sowohl Apache als auch MySQL, keine)
  • Prüfen der db-Benutzerberechtigungen
  • Ändern von mysql.connect_timeout y default_socket_timeout in PHP
  • Ändern von max_allowed_packet in MySQL
  • Lesen der offizielle Dokumente , Forum und alles in SO, was sagt "MySQL-Server ist weg"

Neu:

  • Deaktivierung dauerhafter Verbindungen in PHP
  • Ändern von wait_timeout y connect_timeout in MySQL

Aktualisierung:

Es scheint mit der Ausführungszeit meines Skripts zusammenzuhängen: Es ruft einige Informationen über den Facebook-PHP-Client ab und dieser Aufruf scheint heute zufällig fehlzuschlagen, so dass ich entweder keine Daten von Facebook oder den MySQL-Fehler habe. Aber zu meiner Überraschung scheint keine der angegebenen Lösungen mit der Zeitüberschreitung umzugehen.

Irgendwelche Ideen? Vielen Dank für Ihre Zeit!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X