Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Python:MySQL:Umgang mit Zeitüberschreitungen

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