Ich habe Crascheds Ansatz ausprobiert, der mich zu einem neuen OperationalError geführt hat:
OperationalError: (2013, 'Lost connection to MySQL server during query')
Meine endgültige Lösung bestand darin, zuerst den Ping zu versuchen und, wenn ein weiterer OperationalError ausgelöst wurde, die Verbindung wiederherzustellen und den Cursor mit der neuen Verbindung wie folgt neu zu erstellen:
try:
self.connection.ping(True)
except MySQLdb.OperationalError:
self.connection = MySQLdb.connect(
self.db_host,
self.db_user,
self.db_passwd,
self.db_dbase,
self.db_port)
# reconnect your cursor as you did in __init__ or wherever
self.cursor = self.connection(
MySQLdb.cursors.DictCursor)
Wieder im Geschäft!
Python 2.7, MySQL 5.5.41