PHP-Skript mit PDO tritt auf „MySQL Server Has Gone Away“-Fehler
Ein Skript, das nächtliche Aufgaben ausführt, steht vor einem Problem, bei dem PDO-Anweisungen vorbereitet sind schlägt nach mehreren erfolgreichen Ausführungen mit dem Fehler „MySQL-Server ist verschwunden“ fehl. Die Hauptursache für dieses Problem liegt häufig in der Überschreitung der für MySQL festgelegten maximal zulässigen Paketgröße.
Lösung: Anpassen der Serverkonfiguration
Um den Fehler zu beheben, ist dies erforderlich um die max_allowed_packet-Einstellung in der MySQL-Konfigurationsdatei (my.ini) anzupassen. Diese Einstellung gibt die maximale Größe von Paketen an, die der Server verarbeiten kann. Im gegebenen Szenario tritt das Problem wahrscheinlich auf, wenn versucht wird, ein BLOB einzufügen, das größer als die zulässige Größe ist.
Fehlermeldungen und Logger-Ausgabe
Wenn dieses Problem auftritt, wird die Auf der Clientseite wird die Fehlermeldung „MySQL-Server ist verschwunden“ angezeigt. Darüber hinaus kann das Serverprotokoll den folgenden Fehler enthalten, wenn die Fehlerprotokollierung aktiviert ist:
Error 1153 Got a packet bigger than 'max_allowed_packet' bytes
Konfigurationsanpassung
Um dieses Problem zu beheben, ermitteln Sie die Größe des größten BLOB, das eingefügt wird, und max_allowed_packet in my.ini entsprechend festlegen. Wenn die größte BLOB-Größe beispielsweise auf 200 MB geschätzt wird, kann die Konfiguration wie folgt angepasst werden:
[mysqld] ... max_allowed_packet = 200M ...
Das obige ist der detaillierte Inhalt vonWarum erhält mein PHP-Skript, das PDO verwendet, nach mehreren erfolgreichen Ausführungen immer wieder die Fehlermeldung „MySQL-Server ist verschwunden'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!