Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan Node.js MySQL 'Sambungan hilang: Pelayan menutup sambungan' Ralat?
Node.js MySQL: Menyelesaikan "Sambungan hilang: Pelayan menutup sambungan" Ralat
Apabila membuat sambungan ke pangkalan data MySQL menggunakan Node. js, adalah mungkin untuk menghadapi ralat yang menyatakan "Sambungan hilang: Pelayan menutup sambungan." Ralat ini biasanya berlaku dalam tempoh seperti 12:00 hingga 2:00, apabila sambungan TCP diganggu oleh pelayan.
Penyelesaian 1: Pengendalian Penyambungan Semula Automatik
Kepada mengendalikan ralat ini secara automatik, laksanakan kod berikut:
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();
Dalam kod ini, sambungan adalah ditubuhkan dengan pelayan MySQL. Jika sambungan terputus disebabkan oleh pelayan dimulakan semula atau tamat masa melahu, fungsi handleDisconnect() dipanggil, yang mewujudkan semula sambungan.
Penyelesaian 2: Penyambungan Semula Manual
Dalam kod yang disediakan, anda telah melaksanakan sebahagian daripada mekanisme penyambungan semula automatik, tetapi terdapat bahagian yang hilang selepas sambungan talian = mysql.createConnection(kf_config);. Kod berikut melengkapkan pelaksanaan:
connection.connect(function(err) { if (err) { console.log("Error connecting to KFC: " + err); } else { console.log("KF connected!"); } });
Anda juga harus mendaftarkan pendengar ralat pada objek sambungan untuk mengendalikan peristiwa kehilangan sambungan secara automatik. Contohnya:
connection.on('error', function(err) { if (err.code === 'PROTOCOL_CONNECTION_LOST') { console.log("KF connection lost. Reconnecting..."); handleKFDisconnect(); } else { throw err; } });
Dengan mengikut langkah-langkah ini, anda boleh memastikan bahawa aplikasi MySQL Node.js anda mengendalikan kehilangan sambungan dengan anggun dan mewujudkan semula sambungan secara automatik.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Node.js MySQL 'Sambungan hilang: Pelayan menutup sambungan' Ralat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!