ホームページ >データベース >mysql チュートリアル >Node.js MySQL 接続が午前 0 時から午前 2 時の間に失敗するのはなぜですか? どうすれば修正できますか?

Node.js MySQL 接続が午前 0 時から午前 2 時の間に失敗するのはなぜですか? どうすれば修正できますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-09 18:35:15643ブラウズ

Why Does My Node.js MySQL Connection Fail Between Midnight and 2 AM, and How Can I Fix It?

MySQL 接続の問題: 「接続が失われました: サーバーが接続を閉じました」

問題:

MySQL で Node.js を使用すると、特定の場所で「接続が失われました: サーバーが接続を閉じました」エラーが発生します

解決策:

この問題に対処するには、次の手順に従ってください:

var db_config = {
  host: 'localhost',
    user: 'root',
    password: '',
    database: 'example'
};

var connection;

function handleDisconnect() {
  // Recreate the connection
  connection = mysql.createConnection(db_config);

  connection.connect(function(err) {
    if(err) {
      console.log('error when connecting to db:', err);
      setTimeout(handleDisconnect, 2000); // Delay before reconnecting
    }
  });

  // Handling connection errors
  connection.on('error', function(err) {
    console.log('db error', err);
    if(err.code === 'PROTOCOL_CONNECTION_LOST') {
      handleDisconnect();
    } else {
      throw err;
    }
  });
}

handleDisconnect();

説明:

このコード スニペットは、MySQL への新しい接続を作成します。切断が発生したときにサーバーにアクセスします。 setTimeout 関数は、ホット ループを防ぐために遅延を導入し、スクリプトが再接続中に他のリクエストを処理できるようにします。

エラー ハンドラーは、通常サーバーの再起動時に発生する「PROTOCOL_CONNECTION_LOST」エラーを処理するように構成されています。他のエラーが再スローされ、問題に関するより詳細な情報が提供されます。

handleDisconnect() 関数が呼び出され、エラー処理と再接続プロセスが開始されます。

以上がNode.js MySQL 接続が午前 0 時から午前 2 時の間に失敗するのはなぜですか? どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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