Ich habe ein Python-Skript, das einen MySQL-Server auf einem gemeinsam genutzten Linux-Host abfragt. Aus irgendeinem Grund geben Abfragen an MySQL häufig den Fehler "Server ist weg" zurück:
_mysql_exceptions.OperationalError: (2006, 'MySQL server has gone away')
Wenn Sie die Abfrage unmittelbar danach erneut versuchen, ist sie normalerweise erfolgreich. Ich würde gerne wissen, ob es in Python eine sinnvolle Möglichkeit gibt, eine Abfrage auszuführen, und wenn dies fehlschlägt, versuchen Sie es erneut, bis zu einer festgelegten Anzahl von Versuchen. Wahrscheinlich möchte ich, dass es 5 Mal versucht wird, bevor ich ganz aufgebe.
Hier ist die Art von Code, die ich habe:
conn = MySQLdb.connect(host, user, password, database)
cursor = conn.cursor()
try:
cursor.execute(query)
rows = cursor.fetchall()
for row in rows:
# do something with the data
except MySQLdb.Error, e:
print "MySQL Error %d: %s" % (e.args[0], e.args[1])
Natürlich könnte ich es tun, indem ich einen weiteren Versuch in der Ausnahmeklausel mache, aber das ist unglaublich hässlich, und ich habe das Gefühl, dass es einen anständigen Weg geben muss, um dies zu erreichen.