很多開發人員都會遇見」mysql: error 1040: too many connections」的異常情況,造成這種情況的一種原因是訪問量過高,mysql伺服器抗不住,這個時候就要考慮增加從伺服器分散讀壓力;另一種原因就是mysql配置檔案中max_connections值過小。
首先,我們來檢視mysql的最大連線數:
mysql> show variables like'%max_connections%';
+-----------------+-------+
| variable_name | value |
+-----------------+-------+
| max_connections | 151 |
+-----------------+-------+
1 row inset (0.00 sec)
其次,檢視伺服器響應的最大連線數:
mysql> show globalstatus like'max_used_connections';
+----------------------+-------+
| variable_name | value |
+----------------------+-------+
| max_used_connections | 2 |
+----------------------+-------+
1 row inset (0.00 sec)
可以看到伺服器響應的最大連線數為2,遠遠低於mysql伺服器允許的最大連線數值。
對於mysql伺服器最大連線數值的設定範圍比較理想的是:伺服器響應的最大連線數值佔伺服器上限連線數值的比例值在10%以上,如果在10%以下,說明mysql伺服器最大連線上限值設定過高。
max_used_connections / max_connections * 100% = 2/151 *100% ≈ 1%
再來看一下自己 linode vps 現在的結果值:
mysql> show variables like'%max_connections%';
+-----------------+-------+
| variable_name | value |
+-----------------+-------+
| max_connections | 151 |
+-----------------+-------+
1 row inset (0.19 sec)
mysql> show globalstatus like'max_used_connections';
+----------------------+-------+
| variable_name | value |
+----------------------+-------+
| max_used_connections | 44 |
+----------------------+-------+
1 row inset (0.17 sec)
這裡的最大連線數佔上限連線數的30%左右。
上面我們知道怎麼檢視mysql伺服器的最大連線數值,並且知道了如何判斷該值是否合理,下面我們就來介紹一下如何設定這個最大連線數值。
方法1:
mysql>setglobal max_connections=256;
query ok, 0 rowsaffected (0.00 sec)
mysql> show variables like'%max_connections%';
+-----------------+-------+
| variable_name | value |
+-----------------+-------+
| max_connections | 256 |
+-----------------+-------+
1 row inset (0.00 sec)
修改mysql配置檔案my.cnf,在[mysqld]段中新增或修改max_connections值:方法2:
max_connections=128
重啟mysql服務即可。
優化mysql連線數訪問量
如果mysql 出現mysql error 1040 too many connections有兩種原因,第一種表明訪問量過高,mysql伺服器扛不住了,就要考慮新增伺服器分擔壓力,第二種有可能就是mysql配置檔案max connections這個值太小 我在我的mysql查詢 如果你查詢的結果伺...
mysql優化連線數防止訪問量過高的方法
很多開發人員都會遇見 mysql error 1040 too many connections 的異常情況,造成這種情況的一種原因是訪問量過高,mysql伺服器抗不住,這個時候就要考慮增加從伺服器分散讀壓力 另一種原因就是mysql配置檔案中max connections值過小。首先,我們來檢視m...
mysql優化連線數防止訪問量過高的方法
很多開發人員都會遇見 mysql error 1040 too many connections 的異常情況,造成這種情況的一種原因是訪問量過高,mysql伺服器抗不住,這個時候就要考慮增加從伺服器分散讀壓力 另一種原因就是mysql配置檔案中max connections值過小。首先,我們來檢視m...