【mysql】——mysql最大連接數

一、前言

     項目中可能會遇到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

wKioL1WfL-mQ12woAACbi5DxTZU099.jpg

Mysql5.1根據其小版本的不同,默認的最大連接數和可修改的連接數上限也有所不同

wKioL1WfMCPTjvf2AAEkEu6cg1k964.jpg

Mysql5.0版本:默認的最大連接數爲100,上限爲16384

wKioL1WfMFWhrBbHAACjwjpPK14276.jpg

     吐槽一下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

    mysql> show variables like "%max_connections%";
    ±----------------±------+
    | Variable_name  | Value|
    ±----------------±------+
    | max_connections|  151 |
    ±----------------±------+
    1 row in set (0.00 sec)

2、查看服務器響應的最大連接數

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。

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、https://www.yisu.com/zixun/38410.html

2、https://bbs.huaweicloud.com/blogs/147608

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