現(xiàn)象
創(chuàng)新互聯(lián)公司是一家專注于成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)與策劃設(shè)計(jì),濱海網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:濱海等地區(qū)。濱海做網(wǎng)站價(jià)格咨詢:18982081108log日志里頻繁出現(xiàn)ERROR: Too many connections這樣的報(bào)錯(cuò)。
分析
看到這樣的報(bào)錯(cuò)我們大概也知道為啥,無(wú)非就是連接數(shù)滿了,亦或代碼里有問題導(dǎo)致不合理的關(guān)閉連接。我始終堅(jiān)持傳遞思想為首,知識(shí)為輔。為啥呢,因?yàn)榇蠹叶际锹斆魅?,思想有了怎么做那每個(gè)人都有每個(gè)人的方法,所有人才能最快的進(jìn)步。
好了,廢話有點(diǎn)多,回到正題,為啥上面我會(huì)提到思路呢。因?yàn)橹挥心阌辛诉@個(gè)思路才能干事??!很多時(shí)候我們想干事但沒思路?。∷詫W(xué)習(xí)學(xué)的是思路,根本不是知識(shí)!
我們知道了可能產(chǎn)生的原因之后就要去逐個(gè)排查,大致步驟如下:
1、看連接數(shù)。MySQL 配置的大連接數(shù)是 100,然應(yīng)用這邊最多也就 30~40吧,不應(yīng)該會(huì)出現(xiàn)這個(gè)問題,所以pass掉
2、剩下的就是代碼,重點(diǎn)看sql部分,放到建立連接和釋放連接的地方進(jìn)行排查
源代碼:
pool.getConnection(function(err, connection) {
if (err) throw err;
connection.query(sql, function(err, rows, fields) {
if (err) {
return cosole.error(err);
}
cb(rows);
});
// 釋放此連接
connection.release();
看出什么問題來了嗎?嗯,我猜,看不出來~哈哈
其實(shí)稍微懂點(diǎn)的代碼的童鞋應(yīng)該可以看出來,就是釋放連接語(yǔ)句放的位置有點(diǎn)不對(duì)。
修改后:
pool.getConnection(function(err, connection) {
if (err) throw err;
connection.query(sql, function(err, rows, fields) {
// 釋放連接
connection.release();
if (err) {
return cosole.error(err);
}
cb(rows);
3、修改之后驗(yàn)證,萬(wàn)事大吉,阿彌陀佛!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。