sql >> Databáze >  >> RDS >> Mysql

Jak povolit automatické opětovné připojení klienta MySQL k MySQLdb?

Tento problém jsem vyřešil vytvořením funkce, která obalí cursor.execute() protože to je to, co vyvolalo MySQLdb.OperationalError výjimka. Druhý příklad výše naznačuje, že se jedná o conn.cursor() metoda, která vyvolá tuto výjimku.

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. Jak MID() funguje v MariaDB

  2. Jak anotovat pole automatického přírůstku MYSQL pomocí anotací JPA

  3. pgDash Alternatives - PostgreSQL Database Monitoring s ClusterControl

  4. Jak vytvořit a naplnit tabulku v jediném kroku jako součást operace importu CSV?