アイドル時間後の Node.js での MySQL "read ECONNRESET" エラー
node-mysql モジュール経由で MySQL に接続するときに、次のような問題が発生する可能性がありますサーバーを長時間アイドル状態にしておくと、「read ECONNRESET」エラーが発生します。このエラーは、MySQL のアイドル接続プルーニング メカニズムが原因である可能性がある、接続のリセットを示します。
問題の診断:
-
接続の切断:このエラーは、ノードの接続と MySQL サーバーの間の切断を示唆しています。これは、MySQL 変数「wait_timeout」設定 (デフォルトは 8 時間) が原因である可能性があります。
-
接続プールの問題: Node-mysql は、接続プールを使用して切断を処理し、非アクティブな接続を削除します。ただし、クエリを作成するまで切断された接続をプルーニングできない場合があり、これによりエラーがトリガーされます。
-
外部要因: 一方、「read ECONNRESET」エラーは MySQL に関連付けられていることがよくあります。 、接続損失の原因となる潜在的な外部要因がないか確認することを検討してください。
エラーの解決:
-
待機タイムアウトを増やす: MySQL の「wait_timeout」変数を 28,800 秒 (8 時間) などの長い期間に設定します。これにより、切断することなく、非アクティブな状態が長時間続くことが可能になります。
-
プール プルーニングを使用する: コードにハートビート メカニズムを実装して、SELECT 1 を定期的に送信します。データベースにクエリを実行し、接続を維持します。
-
アイドル タイムアウトを強調する: ノード プール モジュールの idleTimeoutMillis オプションを使用して、アイドル状態の接続を自動的にプルーニングし、問題の発生を防ぎます。
以上がMySQL 接続がアイドル状態になった後、Node.js で「read ECONNRESET」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。