問題mysql
在使用MySQL數據庫的時候,常常會遇到這麼一個問題,就是「Can not connect to MySQL server. Too many connections
」-mysql 1040錯誤,這是由於訪問MySQL且還未釋放的鏈接數目已經達到MySQL的上限。一般,mysql的最大鏈接數默認是100, 最大能夠達到16384。sql
經常使用的有兩種方式修改最大鏈接數。數據庫
解決方式一:經過命令vim
能夠經過 set GLOBAL max_connections=100;
命令將最大鏈接數設置爲100,此方法是即時生效的,不須要重啓mysql服務。以下圖所示:windows
需注意的是,要經過root權限的mysql賬號才能操做,不然會報「1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation」
的錯誤。服務器
同時,從上圖也能夠看出,設置max_connections最小值爲1。session
設置完成後,我再經過另外一個終端鏈接時,就報出了以下的錯誤提示:1040-Too many connections
。this
解決方式二:修改my.cnf線程
打開mysql的配置文件vim /etc/my.cnf
,加入max_connections=100一行
(若是有,直接修改值便可),而後重啓服務:/etc/init.d/mysqld restart
,此時生效。rest
區別:
1.經過修改配置文件,須要重啓服務;而用命令修改,即時生效。
2.採用修改配置文件的方式,更穩定可靠。由於若是配置文件中有max_connections=100
,再去用命令修改的話,一旦重啓mysql服務後,會從新以配置文件中指定的鏈接數爲準。
總結:
在修改最大鏈接數的時候會有這樣一個疑問—這個值是否是越大越好,或者設置爲多大才合適?這個參數的大小要綜合不少因素來考慮,好比使用的平臺所支持的線程庫數量(windows只能支持到2048)、服務器的配置(特別是內存大小)、每一個鏈接佔用資源(內存和負載)的多少、系統須要的響應時間等。能夠在global或session範圍內修改這個參數。鏈接數的增長會帶來不少連鎖反應,須要在實際中避免由此引起的負面影響。但願本文你們使用mysql有所幫助。