Fehler 2006: "MySQL server has gone away" mit Python, Flasche Microframework und Apache
Nach dem Zugriff auf meine web-app mit:
- Python 2.7
- die Flasche micro framework v. 0.10.6
- Apache 2.2.22
- mod_wsgi
- auf Ubuntu-Server 12.04 64bit; ich erhalte diese Fehlermeldung nach mehreren Stunden:
OperationalError: (2006, 'MySQL server has gone away')
Ich bin mit MySQL - native one enthalten in Python. Es passiert meist, wenn ich nicht auf den server zugreifen. Ich habe versucht, schließen Sie alle verbindungen, die ich tun, mit diesem:
cursor.close()
db.close()
wo db ist die standard-MySQLdb.Verbindung () - Aufruf.
Meine.cnf-Datei sieht ungefähr so aus:
key_buffer = 16M
max_allowed_packet = 128M
thread_stack = 192K
thread_cache_size = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover = BACKUP
#max_connections = 100
#table_cache = 64
#thread_concurrency = 10
Es ist die Standard-Konfigurationsdatei außer max_allowed_packet ist 128M statt 16M.
Die Abfragen an die Datenbank sind sehr einfach, in den meisten Sie abrufen, etwa 100 Datensätze.
Kann mir jemand helfen, dieses Problem beheben? Eine Idee, die ich hatte war mit try/except, aber ich bin mir nicht sicher, ob das tatsächlich funktionieren würde.
Vielen Dank im Voraus,
Jamie
Update: try/except fordert, hat nicht funktioniert.
InformationsquelleAutor Jamie | 2012-09-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist dies MySQL Fehler, nicht Python ist.
Die Liste der möglichen Ursachen und möglichen Lösungen ist hier: MySQL 5.5 Reference Manual: C. 5.2.9. MySQL server has gone away.
Mögliche Ursachen sind:
In anderen Worten, es gibt viele mögliche Ursachen. Gehen Sie durch die Liste und prüfen Sie jede mögliche Ursache.
Ok, die automatische Wiederherstellung der Verbindung-am Ende Tat arbeiten. Vielen Dank für deine Hilfe, das war einfach!
Sie sind herzlich willkommen. Ich bin froh, dass ich geholfen 🙂
Eigentlich die Lösung hat nicht funktioniert. Es gibt immer noch eine Fehlermeldung, nachdem ich verließ die app für etwa 24 Stunden. Ich glaube, dass eine neue Frage wäre, wie erstelle ich automatische verbindungen mit Python?
Deine Antwort hilft mir viel, und speichern Sie mindestens 1 Tag von meiner Zeit . Ich danke Ihnen so sehr .
InformationsquelleAutor Tadeck
Stellen Sie sicher, dass Sie nicht versuchen, sich zu verpflichten, die eine geschlossene MySqldb Objekt
InformationsquelleAutor joseph
Antwort auf eine (sehr eng) Frage wurde hier gepostet: https://stackoverflow.com/a/982873/209532
Es bezieht sich direkt auf die MySQLdb-Treiber (MySQL-python (unbetreut) und mysqlclient (gepflegt Gabel)), aber die Vorgehensweise ist die gleiche für andere Treiber das nicht unterstützt automatische reconnect.
InformationsquelleAutor chjortlund
Für mich war dieses fest mit
statt
dann
InformationsquelleAutor citynorman