首頁  >  文章  >  資料庫  >  總結MySQL修改最大連線數的兩個方式_MySQL

總結MySQL修改最大連線數的兩個方式_MySQL

WBOY
WBOY原創
2016-09-09 08:13:43990瀏覽

問題

在使用MySQL資料庫的時候,常常會遇到這麼一個問題,就是「Can not connect to MySQL server. Too many connections」-mysql 1040錯誤,這是因為存取MySQL且還未釋放的連線數目已經達到MySQL的上限。通常,mysql的最大連線數預設是100, 最大可以達到16384。

常用的有兩種方式修改最大連線數。

解決方式一:透過命令

可以透過 set GLOBAL max_connections=100; 指令將最大連線數設為100,此方法是即時生效的,不需要重新啟動mysql服務。如下圖所示:

要注意的是,要透過root權限的mysql帳號才能操作,否則會報「1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation」的錯誤。

同時,從上圖也可以看出,設定max_connections最小值為1。

設定完成後,我再透過另一個終端連接時,就報出瞭如下的錯誤提示:1040-Too many connections

解決方式二:修改my.cnf

開啟mysql的設定檔vim /etc/my.cnf,加入max_connections=100一行(如果有,直接修改值即可),然後重新啟動服務:/etc/init.d/mysqld restart,此時生效。

區別:

1.透過修改設定文件,需要重啟服務;而用指令修改,即時生效。

2.採用修改設定檔的方式,更穩定可靠。因為如果設定檔中有max_connections=100,再去用指令修改的話,一旦重啟mysql服務後,會重新以設定檔中指定的連線數為準。

總結:

在修改最大連線數的時候會有這樣一個疑問—這個值是不是越大越好,或者設定為多大才合適?這個參數的大小要綜合很多因素來考慮,例如使用的平台所支援的線程庫數量(windows只能支援到2048)、伺服器的配置(特別是記憶體大小)、每個連接佔用資源(記憶體和負載)的多少、系統所需的回應時間等。可以在global或session範圍內修改這個參數。連接數的增加會帶來許多連鎖反應,需要在實際中避免由此引發的負面影響。希望本文大家使用mysql有幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn