您好,登錄后才能下訂單哦!
Too many connections
從字面理解,mysql連接數(shù)過(guò)多。當(dāng)連接數(shù)量過(guò)多,且來(lái)不及釋放時(shí)便會(huì)出現(xiàn)此錯(cuò)誤。
查看mysql當(dāng)前連接信息,特別要注意sleep休眠狀態(tài)的連接。
show full processlist;
Command 狀態(tài):
- SLEEP
線程正在等待客戶端發(fā)送新的請(qǐng)求。
- QUERY
線程正在執(zhí)行查詢或者正在將結(jié)果發(fā)送給客戶端?!?/li>- LOCKED
在MYSQL服務(wù)層,該線程正在等待表鎖。在存儲(chǔ)引擎級(jí)別實(shí)現(xiàn)的鎖,如INNODB的行鎖,并不會(huì)體現(xiàn)在線程狀態(tài)中。對(duì)于MYISAM來(lái)說(shuō)這是一個(gè)比較典型的狀態(tài)。但在其他沒(méi)有行鎖的引擎中也經(jīng)常會(huì)出現(xiàn)。ANALYZING AND STATISTICS 線程正在收集存儲(chǔ)引擎的統(tǒng)計(jì)信息,并生成查詢的執(zhí)行計(jì)劃。- COPYING TO TMP TABLE (ON DISK)
線程正在執(zhí)行查詢,并且將其結(jié)果集都復(fù)制到一個(gè)臨時(shí)文件中,這種狀態(tài)一般要么是在做GROUP BY操作,要么是文件排序操作,或者是UNION操作。如果這個(gè)狀態(tài)后面還有ON DISK的標(biāo),那表示MYSQL正在將一個(gè)內(nèi)存臨時(shí)表放到磁盤(pán)上。- SORTING RESULT
線程正在對(duì)結(jié)果集進(jìn)行排序。- SENDING DATA
線程可能在多個(gè)狀態(tài)之間傳送數(shù)據(jù),或者生成結(jié)果集,或者在向客戶端返回?cái)?shù)據(jù)。
查看mysql設(shè)置的最大連接數(shù)
show global variables like 'max_connections';
服務(wù)器響應(yīng)的最大連接數(shù)
show global variables like 'max_user_connections';
建議:服務(wù)器響應(yīng)的最大連接數(shù)值占服務(wù)器上限連接數(shù)值的比例值在10%以上,如果在10%以下,說(shuō)明mysql服務(wù)器最大連接上限值設(shè)置過(guò)高。
max_user_connections/max_connections * 100% >=10%
如果最大連接數(shù)量沒(méi)問(wèn)題,而sleep休眠狀態(tài)的連接過(guò)多,則應(yīng)該從兩方面注意:
需要主題:wait_timeout設(shè)置過(guò)大有弊端,其體現(xiàn)就是MySQL里大量的SLEEP進(jìn)程無(wú)法及時(shí)釋放,拖累系統(tǒng)性能。如果設(shè)置過(guò)小,可能會(huì)遭遇到“MySQL has gone away”之類(lèi)的問(wèn)題。
要想從根本上解決sleep過(guò)多的問(wèn)題,需從以下面三點(diǎn)排查:
最后快速解決過(guò)程
set GLOBAL max_connections = 500;
set GLOBAL wait_timeout = 300;
set GLOBAL interactive_timeout = 600;
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。