問題描述:產(chǎn)生這個(gè)問題的原因很明顯,數(shù)據(jù)庫連接太多。
原因剖析:
1)從代碼角度:基于目前的ORM框架,基本告別了手動(dòng)關(guān)閉連接的方式。如果代碼問題,基本就要考慮事務(wù)鎖定。
2)從數(shù)據(jù)庫連接數(shù)角度:數(shù)據(jù)庫連接默認(rèn)是100個(gè),基本夠用。
解決方式:
基于以上兩個(gè)原因,基本沒有分析出任何問題。怎么辦?回到問題本身,too many connections,我們先去查看下到底有哪些連接。以linux為例:
1)mysql -u root -p
2)輸入密碼
3)mysql->show processlist;
顯示如下截圖:

至此,我們發(fā)現(xiàn)有好多sleep狀態(tài)的連接。百度一番,終于得到兩種解決方案:
1)kill 進(jìn)程id;
2)修改mysql配置文件,擴(kuò)大其連接數(shù),縮短休眠連接時(shí)間(超時(shí)就自動(dòng)斷開)
a)vi /etc/my.cnf
b)按下“i”進(jìn)入編輯模式,輸入
wait_timeout = 600
interactive_timeout = 600
再按下“ESC”,輸入:wq保存文件并退出
c)重啟mysql
1、查看mysql版本
方法一:status;
方法二:select version();
2、Mysql啟動(dòng)、停止、重啟常用命令
a、啟動(dòng)方式
1、使用 service 啟動(dòng):
[root@localhost /]# service mysqld start (5.0版本是mysqld)
[root@szxdb etc]# service mysql start (5.5.7版本是mysql)
2、使用 mysqld 腳本啟動(dòng):
/etc/inint.d/mysqld start
3、使用 safe_mysqld 啟動(dòng):
safe_mysqld&
b、停止
1、使用 service 啟動(dòng):
service mysqld stop
2、使用 mysqld 腳本啟動(dòng):
/etc/inint.d/mysqld stop
3、mysqladmin shutdown
c、重啟
1、使用 service 啟動(dòng):
service mysqld restart
service mysql restart (5.5.7版本命令)
2、使用 mysqld 腳本啟動(dòng):
/etc/init.d/mysqld restart