sql >> データベース >  >> RDS >> Mysql

SQLAlchemy/MySQLクエリ中にMySQLサーバーへの接続が失われました

    MySQL接続が長期間非アクティブになった後、タイムアウトしているように見えます。既存の設定でDBに常にクエリを実行している場合は、発生しないと思います。この問題を解決する必要があるMySQL側とSQL側の両方にいくつかの設定があります:

    1. SQLaエンジンのpool_recycleを確認してください 値、異なる/小さい値を試してください。例: 1800(秒)。ファイルからDB設定を読み取る場合は、次のように設定します

      pool_recycle:1800

    それ以外の場合は、エンジンの初期化時に指定します。例:

    from sqlalchemy import create_engine
    e = create_engine("mysql://user:[email protected]/db", pool_recycle=1800)
    
    1. wait_timeoutを確認/変更します MySQL変数。 https://devを参照してください。 .mysql.com / doc / refman / 5.6 / en / server-system-variables.html#sysvar_wait_timeout これは、サーバーが非対話型接続でアクティビティを待機してから閉じるまでの秒数です。例:

      'wait_timeout';

      のようなグローバル変数を表示します

    ご使用の環境に適した組み合わせを見つけてください。



    1. Perlをインストールしようとしています-MysqlDBD、mysql_configが見つかりません

    2. where句のMySQL'user_id'があいまいな問題

    3. 以前にメッセージを送信したユーザーのリストを取得する必要があります(MySQL)

    4. 大きなテーブルでOFFSETを使用してクエリを最適化する