接続が失われました: Node.js での MySQL 切断のトラブルシューティング
Node.js ユーザーは、「接続が失われました: サーバーが接続を閉じました」というメッセージが表示される場合があります。 「mysql モジュールを使用するときにエラーが発生します。この問題は、サーバーが TCP 接続を突然終了した場合に発生します。多くの場合、特定の時間範囲内 (例: 午前 0 時から午前 2 時の間)。
原因
エラーは次のことを示しています。 Node.js と MySQL サーバー間の接続がサーバーによって切断されたこと (通常は予期しない切断またはサーバーが原因) restart.
解決策
この問題に対処するには、失われた接続を自動的に検出して再確立する接続処理メカニズムを採用できます。次に例を示します。
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 データベースへの信頼性の高い接続を維持します。
以上がMySQL の使用時に Node.js アプリで「接続が失われました: サーバーが接続を閉じました」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。