關於mysql 提示too many connections問題解決辦法

 

關於mysql 提示too many connections問題解決辦法

mysql 提示too many connections是由於當前服務器上的mysql連接過多,一方面清當前已有連接,另一方面是改 max_connections (最大連接量)就是開源節流思想),我這邊能夠訪問阿里雲的mysql,可以修改max_connections,有效狀態爲當前mysql啓動狀態

就是重啓就沒用了,這跟版本有關,5-7的版本只能分兩步線上設置,配置文件再改。

修改操作(mysql對應的命令行內):

show processlist;//顯示當前連接列表

set GLOBAL max_connections=1000;

//set GLOBAL wait_timeout=120;

//set GLOBAL interactive_timeout=xxx;

(max_connections相當於容器大小,interactive_timeout相當於一個倒計時,時間到了就算是正在運行也會被關閉所以我這邊沒有設置。包括wait_timeout需要使用時要慎重考慮值設爲多少合適)(個人理解)

(max_connections一般爲500~1000,wait_timeout爲等待超時時間,interactive_timeout爲交互超時時間,修改這個數值,表示mysql在關閉一個連接之前要等待的秒數,至此可以讓mysql自動關閉那些沒用的連接,但要注意的是,正在使用的連接到了時間也會被關閉,因此這個時間值要合適)。(博客描述)

 

當下一次mysql重啓服務,max_connections會回到默認值,只有在阿里雲的服務器下的控制檯調出配置文件/ect/my.cnf,

#cd /etc/mysql

#ls

#vi my.cnf

之後把

max_connections=1000

wait_timeout=120

interactive_timeout=300

加進去

這樣在阿里雲上改了配置文件之後,mysql重啓就能夠讀取到。

這種方法適用於mysql的版本在8之前。

8之後的版本有新的方法一步到位不需要從文件裏面改

mysql8.0 使用 persist 參數會持久化到配置文件,比較簡單

設置等待超時時間

set persist wait_timeout=120;

設置交互超時時間

set persist interactive_timeout=300;

設置最大鏈接數(一般500-1000合理)

set persist max_connections=1000;

所以在這之前需要先檢查mysql版本:select version();

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