MySQLdb との MySQL クライアント自動再接続の有効化
MySQLdb では、永続的な接続はデフォルトでは有効になっていません。これは、MySQL データベースへの接続が失われた場合、クライアントは手動で接続を再確立する必要があることを意味します。
PHP メソッド
PHP では、MySQLdb自動再接続を有効にする mysql_options() 関数を提供します。 MYSQL_OPT_RECONNECT オプションを true に設定すると、クライアントは接続が失われた場合に自動的に接続を再確立しようとします。
MySQLdb メソッド
Python では、MySQLdb は次のことを行います。 mysql_options() と直接同等のものはありません。ただし、cursor.execute() メソッドをラップするカスタム関数を使用して自動再接続を実装することは可能です。元の質問は、接続が失われたときに conn.cursor() メソッドが例外をスローすることを示唆しています。
解決策
提供された解決策は、ラッパーを作成することでこの問題に対処します。 query()という関数。この関数は、cursor.execute() メソッドを使用して SQL クエリの実行を試みます。接続の切断によりエラーが発生した場合、query() 関数は接続を再確立し、実行を再試行します。
実装
提供された Python コードは、実装方法を示しています。 query() 関数を使用して、MySQL データベースへの永続的な接続を確立および維持します。長いタイムアウトの後でも、接続はまだアクティブであり、さらにクエリを実行できます。
結論
query() ラッパー関数を活用することで、次のことが可能になります。 MySQLdb で自動再接続を有効にし、クライアントが失われた接続から自動的に回復できるようにします。
以上が永続的な接続のために MySQLdb に自動再接続を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。