ホームページ >データベース >mysql チュートリアル >Node.js MySQL の「接続が失われました: サーバーが接続を閉じました」エラーを解決する方法?
Node.js MySQL: 「接続が失われました: サーバーが接続を閉じました」エラーの解決
Node.js を使用して MySQL データベースへの接続を確立するとき。 js を使用すると、「接続が失われました: サーバーが接続を閉じました。」というエラーが発生する可能性があります。このエラーは通常、TCP 接続がサーバーによって中断される 12:00 ~ 2:00 の時間帯に発生します。
解決策 1: 自動再接続処理
このエラーを自動的に処理するには、次のコードを実装します。
var db_config = { host: 'localhost', user: 'root', password: '', database: 'example' }; var connection; function handleDisconnect() { connection = mysql.createConnection(db_config); connection.connect(function(err) { if(err) { console.log('error when connecting to db:', err); setTimeout(handleDisconnect, 2000); } }); connection.on('error', function(err) { console.log('db error', err); if(err.code === 'PROTOCOL_CONNECTION_LOST') { handleDisconnect(); } else { throw err; } }); } handleDisconnect();
このコードでは、 MySQLサーバー。サーバーの再起動またはアイドル タイムアウトにより接続が失われた場合、handleDisconnect() 関数が呼び出され、接続が再確立されます。
解決策 2: 手動再接続
提供されたコードでは、自動再接続メカニズムの一部が実装されていますが、回線接続後の部分が欠落しています = mysql.createConnection(kf_config);。次のコードで実装が完了します。
connection.connect(function(err) { if (err) { console.log("Error connecting to KFC: " + err); } else { console.log("KF connected!"); } });
接続喪失イベントを自動的に処理するには、接続オブジェクトにエラー リスナーを登録する必要もあります。例:
connection.on('error', function(err) { if (err.code === 'PROTOCOL_CONNECTION_LOST') { console.log("KF connection lost. Reconnecting..."); handleKFDisconnect(); } else { throw err; } });
これらの手順に従うことで、Node.js MySQL アプリケーションが接続の喪失を適切に処理し、自動的に接続を再確立するようにすることができます。
以上がNode.js MySQL の「接続が失われました: サーバーが接続を閉じました」エラーを解決する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。