MySQL的max_connections參數用來設置最大連接(用戶)數。每個連接MySQL的用戶均算作一個連接,max_connections的默認值為100。本文將講解此參數的詳細作用與性能影響。
與max_connections有關的特性
MySQL無論如何都會保留一個用于管理員(SUPER)登陸的連接,用于管理員連接數據庫進行維護操作,即使當前連接數已經達到了max_connections。因此MySQL的實際最大可連接數為max_connections+1;
這個參數實際起作用的最大值(實際最大可連接數)為16384,即該參數最大值不能超過16384,即使超過也以16384為準;
增加max_connections參數的值,不會占用太多系統資源。系統資源(CPU、內存)的占用主要取決于查詢的密度、效率等;
該參數設置過小的最明顯特征是出現”Too many connections”錯誤;
調整max_connections參數的值
調整此參數的方法有幾種,既可以在編譯的時候設置,也可以在MySQL配置文件 my.cnf 中設置,也可以直接使用命令調整并立即生效。
1、在編譯的時候設置默認最大連接數
打開MySQL的源碼,進入sql目錄,修改mysqld.cc文件:
復制代碼 代碼如下:
{"max_connections", OPT_MAX_CONNECTIONS,
"The number of simultaneous clients allowed.", (gptr*) &max_connections,
(gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 100, 1, 16384, 0, 1,
0},
復制代碼 代碼如下:
./configure;make;make install
2、在配置文件my.cnf中設置max_connections的值
打開MySQL配置文件my.cnf
復制代碼 代碼如下:
[root@www ~]# vi /etc/my.cnf
復制代碼 代碼如下:
max_connections = 1000
3、實時(臨時)修改此參數的值
首先登陸mysql,執行如下命令:
復制代碼 代碼如下:
[root@www ~]# mysql -uroot -p
查看當前的Max_connections參數值:
復制代碼 代碼如下:
mysql> SELECT @@MAX_CONNECTIONS AS 'Max Connections';
復制代碼 代碼如下:
mysql> set GLOBAL max_connections=1000;
修改完成后實時生效,無需重啟MySQL。
總體來說,該參數在服務器資源夠用的情況下應該盡量設置大,以滿足多個客戶端同時連接的需求。否則將會出現類似”Too many connections”的錯誤。
新聞熱點
疑難解答