84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
人生最曼妙的风景,竟是内心的淡定与从容!
兩種方式解決 1、你可以設定mysql的連線池
var mysql = require('mysql'); var pool = mysql.createPool({ host: 'localhost', user: 'nodejs', password: 'nodejs', database: 'nodejs', port: 3306 }); var selectSQL = 'select * from t_user limit 10'; pool.getConnection(function (err, conn) { if (err) console.log("POOL ==> " + err); conn.query(selectSQL,function(err,rows){ if (err) console.log(err); console.log("SELECT ==> "); for (var i in rows) { console.log(rows[i]); } conn.release(); }); });
2、你可以使用斷線重連的方式來解決
var mysql = require('mysql'); var conn; function handleError () { conn = mysql.createConnection({ host: 'localhost', user: 'nodejs', password: 'nodejs', database: 'nodejs', port: 3306 }); //连接错误,2秒重试 conn.connect(function (err) { if (err) { console.log('error when connecting to db:', err); setTimeout(handleError , 2000); } }); conn.on('error', function (err) { console.log('db error', err); // 如果是连接断开,自动重新连接 if (err.code === 'PROTOCOL_CONNECTION_LOST') { handleError(); } else { throw err; } }); } handleError();
mysql是有連接池的 並發大的情況下 如果你之前的連接不關閉 連接池滿了 請求無法處理 程式就會阻塞 因此是用完是需要釋放的
兩種方式解決
1、你可以設定mysql的連線池
2、你可以使用斷線重連的方式來解決
mysql是有連接池的 並發大的情況下 如果你之前的連接不關閉 連接池滿了 請求無法處理 程式就會阻塞 因此是用完是需要釋放的