Sambungan MySQL Hilang: Menyelesaikan Ralat "Sambungan hilang: Pelayan menutup sambungan"
Apabila bekerja dengan Node.js dan MySQL, anda mungkin kadangkala menghadapi ralat yang menunjukkan bahawa pelayan menutup sambungan. Ini biasanya berlaku sekitar 12:00 hingga 2:00 PG, membuatkan anda tertanya-tanya. Mesej ralat sering muncul sebagai:
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)
Walaupun mencuba penyelesaian yang disyorkan, isu ini berterusan. Berikut ialah pendekatan yang lebih komprehensif untuk mengendalikan ralat ini dengan berkesan:
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();
Kod ini melakukan perkara berikut:
Dengan melaksanakan pendekatan ini, anda boleh mengendalikan sambungan MySQL dengan berkesan kehilangan ralat dan memastikan sambungan pangkalan data yang lancar dalam aplikasi Node.js anda.
Atas ialah kandungan terperinci Mengapa Sambungan MySQL Node.js Saya Terus Terputus Sekitar Tengah Malam?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!