這些天一直在弄專案管理的大作業,web程式經常遇到這個問題,但是稍微等會又好好的了,一開始懷疑是沒有關閉session,但之後查看了代碼,發現主要原因出在資料庫的配置上
異常資訊:Data source rejected establishment of connection, message from server: "Too many connections"
可能的原因
1.mysql的max_connections屬性配置太小的問題
2.可能是多次insert,update操作沒有關閉session。
解決方案:
1.修改tomcat裡的session 的wait_timeout時間減少為200
2.對處理量大的對資料庫insert或update的操作提供transaction支援.(Spring中配置)
原因:
mysql安裝目錄下的my.ini(linux: my.cnf)中設定的並發串連數太少或者系統繁忙導致串連數被佔滿
解決方式:
Windows: 找到mysql的安裝目錄,開啟my.ini檔案,找到max_connections配置,預設是100,設定成1000,重啟mysql
一定要重新啟動MYSQL才會生效
cmd下執行
net stop mysql
net start mysql
Linux: 找到mysql的安裝目錄,開啟my.cnf檔案
在[mysqld] 下面添加下面三行
max_connections=1000
max_user_connections=500
wait_timeout=200
//max_connections設定最大串連數為1000
//max_user_connections設定每使用者最大串連數為500
//wait_timeout表示200秒後將關閉空閑(IDLE)的串連,但是對正在工作的串連不影響。
//儲存退出,並重新啟動MySQL
sudo stop mysql
sudo start mysql
//重新啟動MySQL後使用下面的命令查看修改是否成功
# mysqladmin -uroot -p variables
Password:
//可以看到以下項說明修改成功
| max_connections | 1000
| max_user_connections | 500
| wait_timeout | 200