ホームページ  >  記事  >  データベース  >  MySQLdb で永続的なデータベース相互作用のために自動再接続を有効にする方法

MySQLdb で永続的なデータベース相互作用のために自動再接続を有効にする方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-15 14:38:02835ブラウズ

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

MySQLdb による MySQL クライアント自動再接続の有効化

Python では、MySQLdb は MySQL データベースに接続する便利な方法を提供します。ただし、永続的な接続を維持すると、接続のドロップなどの問題が発生する可能性があります。

質問: 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。