Wypróbowałem podejście Crasched, które doprowadziło mnie do nowego błędu operacyjnego:
OperationalError: (2013, 'Lost connection to MySQL server during query')
Moje ostateczne rozwiązanie polegało na tym, aby najpierw wypróbować ping, a jeśli został zgłoszony inny OperationalError, ponownie połączyć się i utworzyć kursor z nowym połączeniem, na przykład:
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)
Znowu w biznesie!
Python 2.7, MySQL 5.5.41