Boardunity & Video Forum

Boardunity & Video Forum (https://boardunity.de/)
-   Webspace, Webserver, Domains (https://boardunity.de/webspace-webserver-domains-f28.html)
-   -   MySQL server has gone away (https://boardunity.de/mysql-server-has-gone-away-t4204.html)

MrNase 04.08.2006 16:29

MySQL server has gone away
 
Huhu!

An welcher Einstellung kann es liegen, wenn folgende Fehlermeldung auftritt:

MySQL Error : MySQL server has gone away
Error Number : 2006



Diesen Fehler bekommen wir des öfteren und aus diesem Grund funktionieren unsere Dateiuploads momentan nicht. :(

LonelyPixel 04.08.2006 16:49

Die SQL-Abfrage war zu lang. Du musst die maximale Paketgröße erhöhen oder die Abfrage aufteilen. Das tritt z.B. oft bei Imports auf, die alle Daten in einer einzigen INSERT-Abfrage haben.

Aus meiner "my.ini" (Windows):
set-variable = max_allowed_packet=8M

Jan Stöver 04.08.2006 16:50

max_allowed_packet=x vergrößern schon probiert?
Zitat:

Zitat von php.FAQ
Mögliche Ursachen dafür werden in der MySQL-Dokumentation in Kapitel 18.2.1 diskutiert. Die Fehlermeldung kann durch einen Idle-Timeout auf der Datenbankverbindung (8 Stunden) oder durch zu große Datenpakete beim Arbeiten mit BLOBs und TEXT-Feldern auftreten. In letzterem Fall empfiehlt die MySQL-Dokumentation das Setzen der MySQL-Konfigurationsvariablen max_allowed_packet=# auf einen großen Wert (einige MB).
Ein Benutzer berichtete vom Auftreten dieses Fehlers beim Arbeiten mit UPDATE-Anweisungen in einer breiten Tabelle, die auch bis zu 150 KB große TEXT-Felder enthielt. Abhilfe war hier das Auslagern der TEXT-Felder in eine separate Tabelle. Dies brachte zugleich auch einen großen Performancegewinn.

Zitat:

Zitat von mysql-handbuch
Dieser Abschnitt behandelt auch den verwandten Lost connection to server during query-Fehler.
Der häufigste Grund für den MySQL server has gone away-Fehler ist eine Zeitüberschreitung, nach der der Server die Verbindung schloss. Vorgabemäßig schließt der Server die Verbindung nach 8 Stunden, wenn nichts passiert ist. Sie können diesen Wert mit der wait_timeout-Variablen ändern, die beim Start von mysqld gesetzt wird.
Ein weiterer häufiger Grund für den MySQL server has gone away-Fehler ist das Absetzen eines ``close'' auf Ihre MySQL-Verbindung mit dem anschließenden Versuch, auf der geschlossenen Verbindung eine Anfrage abzusetzen.
Sie können überprüfen, ob der MySQL-Server gestorben ist, indem Sie mysqladmin version ausführen und die Uptime untersuchen.
Wenn Sie ein Skript haben, müssen Sie die Anfrage lediglich noch einmal für den Client absetzen, um eine automatische Neuverbindung zu machen.
Normalerweise können Sie folgende Fehler-Codes für diesen Fall abfragen (die Betriebssystem-abhängig sind):
CR_SERVER_GONE_ERRORDer Client konnte keine Anfrage an den Server schicken.CR_SERVER_LOSTDer Client erhielt beim Schreiben zum Server keinen Fehler, bekam aber keine vollständige (oder überhaupt keine) Antwort.
Sie erhalten diese Fehler auch, wenn Sie eine Anfrage zum Server schicken, die falsch oder zu Groß ist. Wenn mysqld ein Paket erhält, das zu Groß oder nicht in Ordnung ist, nimmt er hat, dass etwas mit dem Client schief ging und schließt die Verbindung. Wenn Sie große Anfragen brauchen (beispielsweise wenn Sie mit BLOB-Spalten arbeiten), können Sie die Anfragebeschränkung erhöhen, indem Sie mysqld mit der -O max_allowed_packet=#-Option starten (Vorgabe 1 MB). Der zusätzliche Speicher wird bei Bedarf zugewiesen, daher benutzt mysqld nur dann mehr Speicher, wenn Sie eine große Anfrage ausführen oder wenn mysqld ein großes Ergebnis zurückgeben muss!


Nekronata 19.01.2011 03:19

Ist zwar ein Necro Post, aber genau das hier hat mir gerade geholfen :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:00 Uhr.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25