-
接続タイムアウトの調整: MySQLサーバーとの接続が一定時間アイドル状態が続くと、接続が切断される場合があります。この場合、接続タイムアウトの設定を調整して、接続が切断されるまでの時間を延ばすことができます。例えば、以下のように接続タイムアウトを設定します。
import mysql.connector config = { 'user': 'username', 'password': 'password', 'host': 'localhost', 'database': 'database_name', 'connection_timeout': 1800 # 30 minutes } conn = mysql.connector.connect(config)
上記の例では、接続タイムアウトを30分に設定しています。必要に応じてタイムアウト値を調整してください。
-
プール接続の使用: WebSocket接続ごとにMySQLサーバーに接続する代わりに、接続プールを使用してMySQL接続の再利用を促進することもできます。これにより、接続の確立と切断のオーバーヘッドが軽減されます。以下は、Pythonのmysql-connector-pythonライブラリを使用して接続プールを作成する例です。
import mysql.connector.pooling config = { 'user': 'username', 'password': 'password', 'host': 'localhost', 'database': 'database_name', 'pool_name': 'my_pool', 'pool_size': 5 } pool = mysql.connector.pooling.MySQLConnectionPool(config) def get_connection(): return pool.get_connection() # プールからコネクションを取得して使用する conn = get_connection() cursor = conn.cursor() # クエリの実行などを行う cursor.execute("SELECT * FROM table_name") result = cursor.fetchall() # コネクションを閉じる cursor.close() conn.close()
上記の例では、プールサイズを5に設定していますが、必要に応じて適切な値に調整してください。
これらの方法を試してみて、MySQLサーバーが去ってしまったエラーを解決することができるはずです。ただし、環境や使用しているライブラリによって異なる場合があるため、適切な対策を選択してください。