J'ai essayé l'approche de Crasched, qui m'a amené à une nouvelle OperationalError :
OperationalError: (2013, 'Lost connection to MySQL server during query')
Ma solution finale était d'essayer d'abord le ping, et si une autre OperationalError était levée, de se reconnecter et de recréer le curseur avec la nouvelle connexion, comme ceci :
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)
De retour aux affaires !
Python 2.7, MySQL 5.5.41