首頁 >資料庫 >mysql教程 >如何在 MySQLdb 中啟用自動重新連接以實現持久性資料庫互動?

如何在 MySQLdb 中啟用自動重新連接以實現持久性資料庫互動?

Linda Hamilton
Linda Hamilton原創
2024-11-15 14:38:02932瀏覽

How to Enable Automatic Reconnection in MySQLdb for Persistent Database Interaction?

啟用 MySQL 用戶端自動重新連接 MySQLdb

在 Python 中,MySQLdb 提供了一種連接 MySQLSQL 資料庫的便利方法。然而,維持持久連接可能會遇到問題,例如連接丟失。

問題:如何在 MySQLdb 中啟用自動重新連線?

解決方案: 儘管有處理這種情況的 PHP 方法,但 MySQLdb 缺乏類似的直接方法。但是,使用自訂函數可以提供解決方案。

以下程式碼片段示範如何實作自動重新連線:

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)
# Simulate a connection timeout with a delay
time.sleep(600)
cur = db.query(sql)
# Connection still active

在此範例中,查詢方法嘗試執行查詢。如果發生連線錯誤,它將重新連線並重試查詢。儘管間歇性連線斷開,此機制仍可確保持久的資料庫互動。

以上是如何在 MySQLdb 中啟用自動重新連接以實現持久性資料庫互動?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn