啟用 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中文網其他相關文章!