Seite 1 von 1
MySQL server has gone away
Verfasst: Sonntag 19. April 2009, 20:45
von kromonos
Wie kann ich folgenden fehler verhindern??
_mysql_exceptions.OperationalError: (2006, 'MySQL server has gone away')
Verfasst: Sonntag 19. April 2009, 20:48
von sparrow
Verfasst: Sonntag 19. April 2009, 20:57
von kromonos
Gut .. das erklärt schon einiges .. aber nicht, wie ich es in python so einbauen kann, dass der TimeOut zum Server durch z.B. einen ping "übergangen" wird.
Verfasst: Sonntag 19. April 2009, 21:01
von jerch
Das Problem existiert, seitdem Mysql offiziell Transaktionen unterstützt und die Mysql-Leute mit dem früher eingestellten automatischen reconnect die Konsistenz nicht mehr sicherstellen konnten (u.a. wegen des Rollbacks).
Ich geh mal davon aus, daß Du das Standard-binding unter Python für Mysql nutzt. Da gibts auf der Entwicklerseite einen längeren Thread im Entwicklerforum/Bugtracker dazu, wie man mit dem Problem umgehen sollte. Das läßt sich leider nicht so pauschal beantworten, da es von Einsatzszenario abhängt.
Btw macht das mysqldb-binding unter debian/ubuntu hier das "alte" reconnect, wovon der Entwickler unbedingt abrät, da im Transaktionsfalle Inkonsistenzen vorprogrammiert sind.
Verfasst: Sonntag 19. April 2009, 21:05
von kromonos
hmm .. das ist natürlich blöd .. -.-
EDIT: Danke für die antwort

Verfasst: Sonntag 19. April 2009, 21:20
von jerch
Um das Problem zu umgehen, warum pingst Du den Server nicht vor den zu tätigenden Aktionen an? Damit kannst Du doch auf den Fehler reagieren. Bist Du dennoch inmitten einer Transaktion (eher unwahrscheinlich), so weißt Du, daß die DB ein rollback fährt und Du die Transaktion neu aufbauen mußt. Und ohne Transaktionseinsatz tuts das alte reconnect auch (daher wohl die Entscheidung der Debianleute, das weiter zu nutzen).