MySQL server has gone away

Heute habe ich festgestellt, daß PHP (bzw. die Funktion mysql_error()) diesen Fehler ausgibt, wenn man eine Tabelle mit großen Blob-Daten füllen möchte – z.B. Bilder oder Downloads. Ob man große Daten besser im Dateisystem ablegt und nur den Dateinamen in der Tabelle, oder die Daten direkt in der Tabelle, sei mal dahingestellt. Fakt ist, daß der MySQL-Server es meist erlaubt, derlei große Queries zu verarbeiten. Das Problem ist eigentlich der Client, der per Default auf 1MB-Häppchen beschränkt ist. Um das zu beheben, sollte man in der my.cnf einfach max-allowed-packet höher setzen – präferabel auf irgendwas etwas größer als die PHP-Einstellung für max-post-size.

Hintergrund der Veranstaltung war eine Bilddatenbank, die die Originalbilder in der DB vorhält und für jede abgerufene Zoom-Stufe eine Cache-Kopie auf dem Dateisystem ablegt, die von einer Reinigungsroutine bei Nichtgebrauch irgendwann wieder weggeräumt wurde. Wurden die Originalbilder größer als 1MB, „has the MySQL server“ auf einmal „gone away“. Hat mir einige Kopfschmerzen bereitet, da die Fehlermeldung keinen Hinweis auf Query- oder Packet-Size gab.

Veröffentlicht in Linux, MySQL, PHP, Programmierung. 2 Comments »

2 Antworten to “MySQL server has gone away”

  1. Alexander Says:

    danke! stand gerade vor einem ganz ganz ähnlichen problen.

  2. Bjoern Says:

    Danke, hat mir auch weiter geholfen!


Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: