MySQL 接続が失われました: 「接続が失われました: サーバーが接続を閉じました」エラーを解決する
Node.js と MySQL を使用する場合、サーバーが接続を閉じたことを示すエラーが発生する場合があります。これは通常、午前 12 時から午前 2 時頃に発生するため、困惑するでしょう。エラー メッセージは、次のように表示されることがよくあります:
Error: Connection lost: The server closed the connection. at Protocol.end (/opt/node-v0.10.20-linux-x64/IM/node_modules/mysql/lib/protocol/Protocol.js:73:13) at Socket.onend (stream.js:79:10) at Socket.EventEmitter.emit (events.js:117:20) at _stream_readable.js:920:16 at process._tickCallback (node.js:415:13)
推奨される解決策を試しても、問題は解決しません。このエラーを効果的に処理するためのより包括的なアプローチは次のとおりです。
var db_config = { host: 'localhost', user: 'root', password: '', database: 'example' }; var connection; function handleDisconnect() { connection = mysql.createConnection(db_config); // Recreate the connection connection.connect(function(err) { // Attempt to connect if(err) { console.log('error when connecting to db:', err); setTimeout(handleDisconnect, 2000); // Delay reconnection attempts } }); connection.on('error', function(err) { console.log('db error', err); if(err.code === 'PROTOCOL_CONNECTION_LOST') { // Connection lost due to server restart or idle timeout handleDisconnect(); } else { throw err; } }); } handleDisconnect();
このコードは次の処理を行います。
このアプローチを実装することで、MySQL 接続喪失エラーを効果的に処理し、シームレスなデータベース接続を確保できます。 Node.js アプリケーションで。
以上がNode.js MySQL 接続が真夜中頃に切断され続けるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。