Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để bật máy khách MySQL tự động kết nối lại với MySQLdb?

Tôi đã giải quyết vấn đề này bằng cách tạo một hàm bao bọc cursor.execute() vì đó là thứ đang ném ra MySQLdb.OperationalError ngoại lệ. Ví dụ khác ở trên ngụ ý rằng đó là conn.cursor() phương thức ném ngoại lệ này.

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. Sự khác biệt giữa CHỌN VÀO VÀ CHÈN VÀO trong MySQL

  2. LỖI 1067 (42000):Giá trị mặc định không hợp lệ cho 'create_at'

  3. Cách thiết lập cơ sở dữ liệu WordPress MySQL trên đám mây

  4. MySQL so với MongoDB

  5. Cách nhận dữ liệu 1 giờ qua trong MySQL