mysql太多連接問題及解決方案


不管是JavaEE開發還是其他,只要是Linux系統下安裝的mysql,通常默認最大連接為270。

如果你的客戶端連接超過這個數,通常要么是配置文件修改,或者是命令行修改,配置文件修改和命令行修改的區別是,配置文件,既然是文件通常持久化到硬盤,保存最長,如果是命令行的話,僅僅只能保持在Mysql運行狀態,如果一旦MySQL因為某種原因宕機或者關閉了,命令行的方式就失效了。

 

比如我之前一個項目,使用的是SSM框架,在使用過程中最初出現了一個異常:

異常信息為:Too Many Connection

這是關鍵信息,通常就是MySQL連接數達到最大了。

解決辦法一:

執行如下命令:

show variables like '%max_connections%';//查看當前最大連接數是多少,通常默認為270左右


set global max_connections=1000;//設置mysql最大連接數為1000
show processlist;// 該命令可以查看當前連接mysql的客戶進程 

show gobal status like 'Thread%';// 可以查看當前mysql線程(其中可獲得客戶進程信息)

該解決辦法發弊端:如果一旦MySQL重啟,將會導致失效。

 

解決辦法二:

進入MYSQL安裝目錄 打開MYSQL配置文件 my.ini 或 my.cnf,找到 max_connections=270

將其修改為 max_connections=1000 

然后重啟MySQL后,執行:

show variable like '%max_connection%';

如果顯示最大連接數為1000,表示修改成功,如果不是就表示修改失效,我之前通過這種方式修改,但是沒有成功,最后只得通過命令行的形式修改,也就是第一種解決方案。

 

這兩種是比較常用的、通用的解決方案。如果你的服務器是centos或者ubuntu關於mysql的相關的設置可以自行博客搜索。

不過,通常的話,沒有這個必要。因為MySQL的連接數你可以設置很大很大,但是不一定有用,就好比生態系統一樣,每個生態系統的構成都不一樣,小的大的,生態系統的自我調節能力或者自我恢復能力、抗擊外來風險能力都不一樣。而MySQL也同理,就好比生態系統,不能讓某一類植物或者動物瘋狂生長,這回導致生態失衡,而MySQL里面的很多參數設置也不能隨便亂調,必須考慮服務器和業務,如果業務過於龐大復雜,就不是一台服務器或者一台MySQL優化就能搞定的事情。MySQL主要的兩大瓶頸就是CPU和I/O方面。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM