人生最曼妙的风景,竟是内心的淡定与从容!
兩種方式解決 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是有連接池的 並發大的情況下 如果你之前的連接不關閉 連接池滿了 請求無法處理 程式就會阻塞 因此是用完是需要釋放的