填坑之路!Mysql User'root' has exceeded the 'max_user_connections' resource

今天通過navicat訪問數據庫時訪問久了出現了 User’root’ has exceeded the ‘max_user_connections’ resource錯誤,這個提示是說連接數據庫的併發超出 20個限定,所以不能在增加新的數據庫連接!

小提示:使用代碼連接卻沒有問題,出現這個提示只是管理軟件不能連接到數據庫上,而網站卻不受影響!

先說解決方法:
1.打開navicat
2.點開工具欄
在這裏插入圖片描述
3.選到服務器監控->mysql 打開服務器監控 勾選目標數據庫

在這裏插入圖片描述
4.結束不必要的進程即可

爲什麼會出現這個提示呢??

那是因爲我們的虛擬主機所有的數據庫都有數據庫併發的限制,比如個人A型空間他的數據庫併發的限制就是20個,如果您超出了20個數據庫連接,第21個數據庫的連接就不會被允許
這個問題一般是由於,您使用了數據庫連接池造成的,我們的數據庫併發限制是20個 ,您在您程序裏面設置數據庫連接池的最大連接是大於20個的話就會有這個提示出現!

什麼是數據庫併發??

數據庫併發是指數據庫可以同時被多少人操作,我們的每款jsp虛擬主機他的數據庫併發限制都不一樣, 比如您有20個數據庫連接,當您網頁每調用一次數據庫,他的這個數據庫連接都會保存到我們的數據庫系統裏面,您調用完了這個數據庫,調用 stmt.close(); conn.close(); 釋放這個數據庫連接,這個數據庫連接纔會消失,這樣是一個完整的數據庫併發!

比如用戶從打開一個網頁到加載完畢用了1秒的時間,你們可以簡單的理解爲數據庫併發的操作是1秒鐘可以有20個人同時訪問!! 如果您的網頁裏面多次連接了數據庫(5次),那麼就說明在1秒內,可以有4個人同時訪問這個接口!

所以很多人問,數據庫併發是多長時間可以允許多少人訪問,這個真很難回答,和網頁連接了多少次數據庫有關係和每次訪問的加載時間 和用戶的網速也有關係! 原理已經和大家說了,大家自己判斷!

上面說的是正常情況下,還有一種可能是,部分用戶申請完數據庫連接後,忘記關閉這個數據庫連接(這樣的問題由於程序員的大意也是時有發生的),
如果您的代碼一不小心忘記關閉數據庫的連接,你們這個數據庫連接就會一直保存着,直到他自動釋放(我們公司的數據庫自動釋放時間是8小時),如果您大意忘記釋放他,他就會佔用您20個連接裏面的1個連接,一直到20個併發用完,就會出現上面的那個提示!

由於我們的系統是8小時才自動釋放,如果您忘記關閉數據庫連接,你們就說明是8個小時纔可以有20個數據庫併發,這個是很恐怖的會嚴重影響您網站的訪問…… 爲此很多用戶選擇使用數據庫連接池技術,來避免上述的問題發生!

什麼是數據庫連接池??

數據庫連接池是不需要用戶申請和釋放數據庫的連接,他會自動幫您管理數據庫的連接用戶只管使用這個連接,連接池呢會自動釋放已經用過的連接,當連接不夠用的時候他會自動申請新的連接,這樣循環週而復始,保證數據庫連接的可用性!!!大家可以理解爲連接池是自動幫助用戶管理數據庫的連接的地方,這樣就不會發生上面的數據庫連接忘記關閉的問題

數據庫連接池會在tomcat啓動的時候就自動申請好數據庫連接(申請多少數據庫連接根據您的配置文件裏設置的決定的),放在一個虛擬的池子裏面,您調用數據庫的時候從這個池子裏拿,用完了池子會自動回收你已經用過的這個連接,爲下一個連接做準備!

使用了數據庫連接池,連接池會有一個配置文件,配置文件裏可以規定他在啓動的時候申請最大多少個連接,最小多少個連接,初始多少個連接,一個連接可以存活多久等!!

爲什麼限制我的併發??

由於越來越多的人使用數據庫連接池,很多人會設置最大連接數比較大,幾百,幾千的都有,爲了達到公平的效果…我們會限制每個用戶最大數據庫併發數,如果您設置的最大連接數超出了我們的限制,你們則以我們的爲準,比如:您的限制是20個併發,您在程序裏設置最大100個併發,那麼您連接池實際可申請的最大併發爲20個,這個時候您啓動tomcat,可以正常的訪問您的網站,但是您用工具去連接管理數據庫,則連接不上出現上述提示!原因是20個數據庫連接已經被您用完,沒辦法在進行連接管理數據庫了!!

連接池應該設置多少比較合適?

以20個併發爲例子 連接池我們建議設置
最大連接爲:19
最小連接爲:5
初始連接爲:5
過期時間爲:120秒
如果併發是30個的話只需要把上面的最大連接數設置爲29個即可,其他的不變!!
如果把最小連接數和初始連接數設置過大,則會影響數據庫連接池的性能,弄巧成拙!

參考 http://www.jspkongjian.com/news.jsp?id=1022

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章