ホームページ >データベース >mysql チュートリアル >Node.js サーバーがアイドル状態になると MySQL 接続が失われるのはなぜですか?

Node.js サーバーがアイドル状態になると MySQL 接続が失われるのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-13 01:08:02749ブラウズ

Why does my Node.js server lose its MySQL connection after being idle?

Node.js サーバーのアイドル時間後に MySQL が切断される: 原因を特定し、正常に解決する

Node.js 開発者は、「read ECONNRESET」というメッセージに遭遇することがよくあります。 「node-mysql モジュールを使用して MySQL に接続するとエラーが発生します。このエラーは通常、ノード サーバーが一定期間アイドル状態になった後に発生します。

原因の特定

このエラーは、ノードと MySQL の間の接続が確立されていないことを示唆しています。切断されました。 MySQL にはデフォルトの接続有効期間制限があり、「wait_timeout」変数を通じて設定できます。デフォルト値は 8 時間です。アイドル時間がこの制限を超えると、MySQL は接続をプルーニングします。

問題への対処

この問題を解決するには、次の 2 つのアプローチを取ることができます。

  1. MySQL 接続の寿命を延ばす制限:

    • 「wait_timeout」変数を、28800 秒 (8 時間) などのより高い値に増やします。これにより、接続の有効期間が延長され、アイドル時間による切断が防止されます。
  2. ハートビートまたはノードプール モジュールを使用します:

    • ハートビート クエリ (例: "SELECT 1;") を使用して接続を維持します
    • 「idleTimeoutMillis」オプションを指定してノード プール モジュールを使用し、アイドル状態の接続をプールから自動的に削除します。

その他の考慮事項

データベースやネットワークの問題などの他の要因により、これも「read ECONNRESET」エラーの原因となるため、MySQL の接続有効期間制限を増やすか、ノード プールでハートビート メカニズムを実装することで、ほとんどの場合問題が解決されます。エラーが解決しない場合は、他の潜在的な原因のトラブルシューティングを検討してください。

以上がNode.js サーバーがアイドル状態になると MySQL 接続が失われるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。