Mysql
 sql >> Database >  >> RDS >> Mysql

Python:MySQL:gestione dei timeout

Ho provato l'approccio di Crasched, che mi ha portato a un nuovo OperationalError:

OperationalError: (2013, 'Lost connection to MySQL server during query')

La mia soluzione finale è stata provare prima il ping e, se è stato sollevato un altro OperationalError, riconnettermi e ricreare il cursore con la nuova connessione, in questo modo:

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)

Di nuovo in attività!

Python 2.7, MySQL 5.5.41