ホームページ  >  記事  >  データベース  >  Node.js MySQL 接続がアイドル時間後に「read ECONNRESET」をスローするのはなぜですか?

Node.js MySQL 接続がアイドル時間後に「read ECONNRESET」をスローするのはなぜですか?

DDD
DDDオリジナル
2024-11-12 06:45:02198ブラウズ

Why Does My Node.js MySQL Connection Throw

Node.js サーバーのアイドル時間後の MySQL での「read ECONNRESET」エラーのトラブルシューティング

問題の概要

Node.js サーバーが、 node-mysql モジュールが長時間アイドル状態のままになると、後続の最初のクエリで「read ECONNRESET」エラーが発生することがよくあります。このエラーは、Node と MySQL の間の接続が切断されたことを示唆しています。

質問と回答

1.接続存続期間の制限?

答え: はい、MySQL には、アイドル状態の接続を一定時間 (デフォルト: 8 時間) 後に切断する「wait_timeout」変数があります。

2.接続プールによる正常な切断処理?

答え: Node-mysql の接続プールは、切断された接続を自動的にプルーニングしません。ハートビートまたはノードプールの idleTimeoutMillis オプションを使用して、接続の可用性を維持できます。

3. MySQL 以外のトラブルシューティング?

回答: このエラーは一般的に MySQL に関連していますが、ネットワークの問題や MySQL に影響を与える Node.js コードなどの他の潜在的な原因を除外することをお勧めします。

解決策

  • MySQL の "wait_timeout" を拡張する: 接続のプルーニングを防ぐために、MySQL タイムアウトを増やします。
  • ハートビートを実装します: 「SELECT 1;」のようなクエリを使用します。アクティブな接続を維持し、切断を防ぐために一定の間隔で実行します。
  • ノード プールの「idleTimeoutMillis」を構成します: ノード プール モジュールを使用して、アイドル状態の接続を自動的にプルーニングします。

追加情報

エラーが発生する可能性があります次の原因も考えられます。

  • ノードと MySQL サーバー間のネットワーク接続の問題。
  • MySQL サーバーに影響を与える高負荷または遅延。

以上がNode.js MySQL 接続がアイドル時間後に「read ECONNRESET」をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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