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 サイトの他の関連記事を参照してください。