MySQLdb: クライアントの自動再接続の有効化
Python では、MySQLdb ライブラリは MySQL データベースと対話する便利な方法を提供します。一般的な課題の 1 つは、一時的な中断にもかかわらず接続を継続的に維持することです。
これに対処するために、MySQL オプションを使用するソリューションが PHP に存在しますが、ユーザーは MySQLdb でそれを複製するのが困難に直面しています。
ソリューション:
MySQLdb で自動再接続を有効にする鍵は、cursor.execute() をラップすることにあります。
次の Python コードは、解決策を示しています。
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 # Example usage db = DB() sql = "SELECT * FROM foo" cur = db.query(sql) # Sleep for a long time to simulate connection timeout time.sleep(60 * 60 * 24) cur = db.query(sql) # Connection is still valid and usable
このアプローチでは、query() 関数がユーザーに代わって接続を管理し、失われた接続が確実に再接続されるようにします。自動的に確立されます。
以上がPython での永続的な接続のために MySQLdb で自動クライアント再接続を有効にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。