數據庫連接數突然增大是什么原因?
可能是數據庫性能突然變慢,連接的客戶要很久才能得到響應,客戶以為是自己沒確認到,于是客戶就不斷地連接,這樣會話就增加了,數據庫就更忙了,最后可能會掛了。
一、前言
項目中可能會遇到mysql: error 1040: too many connections”的異常情況;why:造成這種情況的一種原因是訪問量過高,mysql服務器抗不住,這個時候就要考慮增加從服務器分散讀壓力;另一種原因就是mysql配置文件中max_connections值過小。
二、知識點
mysql的max_connections參數用來設置最大連接(用戶)數。每個連接mysql的用戶均算作一個連接,max_connections的默認值不同版本略有區別。
mysql5.5 mysql5.6 mysql5.7:默認的最大連接數都是151,上限為:100000
mysql5.1根據其小版本的不同,默認的最大連接數和可修改的連接數上限也有所不同
mysql5.0版本:默認的最大連接數為100,上限為16384
吐槽一下mysql版本的命名,從5.7一下跳到8.0版本。mysql5.5 mysql5.6 mysql5.7:默認的最大連接數都是151。這個數值對于并發連接很多的數據庫應用是遠不夠用的。當連接請求大于默認連接數后,就會出現無法連接數據庫的錯誤,因此我們需要把它適當調大一些。在使用 mysql 數據庫的時候,經常會遇到一個問題,就是”can not connect to mysql server. too many connections” -mysql 1040 錯誤,這是因為訪問mysql且還未釋放的連接數已經達到 mysql 的上限。mysql無論如何都會保留一個用于管理員(super)登陸的連接,用于管理員連接數據庫進行維護操作,即使當前連接數已經達到了max_connections。因此mysql的實際最大可連接數為max_connections+1;增加max_connections參數的值,不會占用太多系統資源。系統資源(cpu、內存)的占用主要取決于查詢的密度、效率等;該參數設置過小的最明顯特征是出現”too many connections”錯誤;
三、實操
1、查看最大連接數
mysql5.5 mysql5.6 mysql5.7:默認的最大連接數都是151,上限為:100000
1
2
3
4
5
6
7
|
mysql> show variables like "%max_connections%" ; ± ----------------±------+ | variable_name | value| ± ----------------±------+ | max_connections| 151 | ± ----------------±------+ 1 row in set (0.00 sec) |
2、查看服務器響應的最大連接數
1
2
3
4
5
6
7
|
mysql> show global status like 'max_used_connections' ; + ----------------------+-------+ | variable_name | value | + ----------------------+-------+ | max_used_connections | 11 | + ----------------------+-------+ 1 row in set (0.00 sec) |
可以看到服務器響應的最大連接數為11,遠遠低于mysql服務器允許的最大連接數值。對于mysql服務器最大連接數值的設置范圍比較理想的是:服務器響應的最大連接數值占服務器上限連接數值的比例值在10%以上,如果在10%以下,說明mysql服務器最大連接上限值設置過高。
3、修改最大連接數
常用的修改最大連接數的兩種方式如下:
第一種:命令行修改最大連接數(max_connections),設置最大連接數為1000。
1
|
mysql> set global max_connections = 1000; |
這種方式有個問題,就是設置的最大連接數只在 mysql 當前服務進程有效,一旦mysql重啟,又會恢復到初始狀態。因為mysql啟動后的初始化工作是從其配置文件中讀取數據的,而這種方式沒有對其配置文件做更改。
第二種:通過修改配置文件來修改mysql最大連接數(max_connections)。
進入mysql安裝目錄,打開mysql配置文件 my.ini 或 my.cnf查找 max_connections=100,修改為max_connections=1000,重啟mysql服務即可。
四、參考資料
1、http://m.ythuaji.com.cn/article/103813.html
2、https://bbs.huaweicloud.com/blogs/147608
到此這篇關于mysql如何實現最大連接數的文章就介紹到這了,更多相關mysql 最大連接數內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/weixin_40449300/article/details/106115707