mysql too many connections 解決方法

1、mysql -u root -p?回車輸入密碼進入mysql?


2、show processlist;?

查看連接數,可以發現有很多連接處于sleep狀態,這些其實是暫時沒有用的,所以可以kill掉

3、show variables like "max_connections";?

查看最大連接數,應該是與上面查詢到的連接數相同,才會出現too many connections的情況

4、set GLOBAL max_connections=1000;?

修改最大連接數,但是這不是一勞永逸的方法,應該要讓它自動殺死那些sleep的進程。

5、show global variables like 'wait_timeout';?

這個數值指的是mysql在關閉一個非交互的連接之前要等待的秒數,默認是28800s

6、set global wait_timeout=300;?

修改這個數值,這里可以隨意,最好控制在幾分鐘內?


7、set global interactive_timeout=500;?

修改這個數值,表示mysql在關閉一個連接之前要等待的秒數,至此可以讓mysql自動關閉那些沒用的連接,但要注意的是,正在使用的連接到了時間也會被關閉,因此這個時間值要合適

批量kill之前沒用的sleep連接,在網上搜索的方法對我都不奏效,因此只好使用最笨的辦法,一個一個kill

8、select concat('KILL ',id,';') from information_schema.processlist where user='root';?先把要kill的連接id都查詢出來

? ? ? ? ?(1)復制中間的kill id;內容到word文檔

? ? ? ? ?(2)替換掉符號“|”和回車符(在word中查詢^p即可查詢到回車符)

? ? ? ? ?(3)把修改過的內容復制回終端,最后按回車執行

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容