Heim > Datenbank > MySQL-Tutorial > Wie verbinde ich MySQL-Clients in Python erneut mit MySQLdb und MySQL Connector/Python?

Wie verbinde ich MySQL-Clients in Python erneut mit MySQLdb und MySQL Connector/Python?

Patricia Arquette
Freigeben: 2024-11-13 14:23:02
Original
766 Leute haben es durchsucht

How to Reconnect MySQL Clients in Python with MySQLdb and MySQL Connector/Python?

MySQL-Clients erneut mit MySQLdb verbinden

Im Bereich der Datenbankkonnektivität ist die Aufrechterhaltung einer dauerhaften Verbindung für einen unterbrechungsfreien Datenzugriff von entscheidender Bedeutung. MySQLdb, eine beliebte Python-Bibliothek für die Verbindung mit MySQL-Datenbanken, bietet eine Möglichkeit, Clients bei Verbindungsfehlern automatisch wieder zu verbinden.

Automatische Wiederverbindung in früheren Versionen aktivieren

In früheren Versionen von MySQLdb konnte die automatische Wiederverbindungsfunktion über die Funktion mysql_options() aktiviert werden, wie unten gezeigt:

my_bool reconnect = 1
mysql_options(&mysql, MYSQL_OPT_RECONNECT, &reconnect)
Nach dem Login kopieren

Mit der Einführung von MySQL Connector/Python hat sich jedoch die zugrunde liegende Implementierung geändert , und dieser Ansatz ist nicht mehr anwendbar.

Lösung für MySQL Connector/Python

Um eine automatische Wiederverbindung in MySQL Connector/Python zu erreichen, ist es notwendig, die anzupassen Verhalten des Cursorobjekts. Der folgende Codeausschnitt demonstriert diesen Ansatz:

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
Nach dem Login kopieren

Erläuterung

Dieser Code definiert eine benutzerdefinierte query()-Methode, die die Cursor.execute()-Methode umschließt. Wenn ein Verbindungsfehler auftritt (entweder ein AttributeError oder ein MySQLdb.OperationalError), versucht die query()-Methode, die Verbindung zur Datenbank wiederherzustellen und führt dann die Abfrage erneut aus.

Durch die Implementierung dieses automatischen Wiederverbindungsmechanismus innerhalb der Mit dem Cursor-Objekt können Sie sicherstellen, dass Ihre Python-Skripte auch dann weiter ausgeführt werden können, wenn die MySQL-Verbindung zeitweise unterbrochen wird. Dieser Ansatz bietet eine robustere und zuverlässigere Möglichkeit zur Aufrechterhaltung der Datenbankkonnektivität.

Das obige ist der detaillierte Inhalt vonWie verbinde ich MySQL-Clients in Python erneut mit MySQLdb und MySQL Connector/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