Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да активирам автоматично повторно свързване на MySQL клиент с MySQLdb?

Реших този проблем, като създадох функция, която обвива cursor.execute() метод, тъй като това хвърляше MySQLdb.OperationalError изключение. Другият пример по-горе предполага, че това е conn.cursor() метод, който хвърля това изключение.

import MySQLdb

class DB:
  conn = None

  def connect(self):
    self.conn = MySQLdb.connect()

  def query(self, sql):
    try:
      cursor = self.conn.cursor()
      cursor.execute(sql)
    except (AttributeError, MySQLdb.OperationalError):
      self.connect()
      cursor = self.conn.cursor()
      cursor.execute(sql)
    return cursor

db = DB()
sql = "SELECT * FROM foo"
cur = db.query(sql)
# wait a long time for the Mysql connection to timeout
cur = db.query(sql)
# still works


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ASCII() Примери – MySQL

  2. Еквивалент на RowID на Oracle в MySQL

  3. Импортиране на CSV данни с помощта на PHP/MySQL

  4. Как да избягам от запазените думи, използвани като имена на колони? MySQL/Създаване на таблица

  5. Какъв тип данни да използвате за полето за хеширана парола и каква дължина?