MySQL接続が長期間非アクティブになった後、タイムアウトしているように見えます。既存の設定でDBに常にクエリを実行している場合は、発生しないと思います。この問題を解決する必要があるMySQL側とSQL側の両方にいくつかの設定があります:
-
SQLaエンジンの
pool_recycle
を確認してください 値、異なる/小さい値を試してください。例: 1800(秒)。ファイルからDB設定を読み取る場合は、次のように設定しますpool_recycle:1800
それ以外の場合は、エンジンの初期化時に指定します。例:
from sqlalchemy import create_engine
e = create_engine("mysql://user:[email protected]/db", pool_recycle=1800)
-
wait_timeout
を確認/変更します MySQL変数。https://devを参照してください。 .mysql.com / doc / refman / 5.6 / en / server-system-variables.html#sysvar_wait_timeout これは、サーバーが非対話型接続でアクティビティを待機してから閉じるまでの秒数です。例: 'wait_timeout';
のようなグローバル変数を表示します
ご使用の環境に適した組み合わせを見つけてください。