Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie aktiviere ich die automatische Client-Wiederverbindung in MySQLdb für dauerhafte Verbindungen in Python?

Linda Hamilton
Freigeben: 2024-11-22 12:06:11
Original
724 Leute haben es durchsucht

How to Enable Automatic Client Re-connection in MySQLdb for Persistent Connections in Python?

MySQLdb: Aktivieren der automatischen Client-Wiederverbindung

In Python bietet die MySQLdb-Bibliothek eine bequeme Möglichkeit, mit MySQL-Datenbanken zu interagieren. Eine häufige Herausforderung besteht darin, trotz vorübergehender Unterbrechungen eine dauerhafte Verbindung aufrechtzuerhalten.

Um dieses Problem zu beheben, gibt es in PHP eine Lösung mit MySQL-Optionen, aber Benutzer haben Schwierigkeiten, diese mit MySQLdb zu replizieren.

Lösung :

Der Schlüssel zum Aktivieren der automatischen Wiederverbindung in MySQLdb liegt im Umschließen von Cursor.execute() Methode.

Der folgende Python-Code zeigt eine Lösung:

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

# Example usage
db = DB()
sql = "SELECT * FROM foo"
cur = db.query(sql)
# Sleep for a long time to simulate connection timeout
time.sleep(60 * 60 * 24)
cur = db.query(sql)
# Connection is still valid and usable
Nach dem Login kopieren

Bei diesem Ansatz verwaltet die Funktion query() die Verbindung im Namen des Benutzers und stellt sicher, dass alle verlorenen Verbindungen wiederhergestellt werden. automatisch eingerichtet.

Das obige ist der detaillierte Inhalt vonWie aktiviere ich die automatische Client-Wiederverbindung in MySQLdb für dauerhafte Verbindungen in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage