_mysql_exceptions.OperationalError: (2006, 'MySQL server has gone away')
MySQL server has gone away
Wie kann ich folgenden fehler verhindern??
xmpp:kromonos@user-helfen-usern.de
HomePage/IT-Forum: http://www.user-helfen-usern.de
HomePage/IT-Forum: http://www.user-helfen-usern.de
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.
xmpp:kromonos@user-helfen-usern.de
HomePage/IT-Forum: http://www.user-helfen-usern.de
HomePage/IT-Forum: http://www.user-helfen-usern.de
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.
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.
hmm .. das ist natürlich blöd .. -.-
EDIT: Danke für die antwort
EDIT: Danke für die antwort
xmpp:kromonos@user-helfen-usern.de
HomePage/IT-Forum: http://www.user-helfen-usern.de
HomePage/IT-Forum: http://www.user-helfen-usern.de
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).