Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara mengaktifkan koneksi ulang otomatis klien MySQL dengan MySQLdb?

Saya memecahkan masalah ini dengan membuat fungsi yang membungkus cursor.execute() metode karena itulah yang melempar MySQLdb.OperationalError pengecualian. Contoh lain di atas menyiratkan bahwa itu adalah conn.cursor() metode yang melempar pengecualian ini.

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. node.js + penyatuan koneksi mysql

  2. 4 Cara Mendaftar Semua Tabel di Database MySQL

  3. Bagaimana saya tahu kapan wadah mysql buruh pelabuhan saya habis dan mysql siap untuk menerima kueri?

  4. Cara Menggunakan Coalesce di MySQL

  5. MySQL - Cara memilih data berdasarkan panjang string