Data source rejected establishment of connection, message from server: "Too many connections"
有一次,我啟動springboot時會報上面的錯誤。可能是和我的項目有關吧,我的項目在初始化的時候,會用數據庫,把一些數據預加載到緩存里面,在這一過程中,產生了很多的數據庫連接,沒有釋放,因為mysql的連接默認釋放時間是八個小時,這些鏈接越積越多,就導致連接池滿了,無法正常使用數據庫。
我用:
mysql -uroot -p
進入mysql,輸入
show full processlist
發現有大量的連接沒有釋放。所以參照了下面這個老哥的方法:
https://blog.csdn.net/ljphhj/article/details/23804057
在linux的/etc目錄下,vi my.cnf,這個是linux系統中mySql的配置文件。
在[mysqld] 下面添加下面三行
max_connections=1000
max_user_connections=500
wait_timeout=60
意思如下:
//max_connections設置最大連接數為1000
//max_user_connections設置每用戶最大連接數為500
//wait_timeout表示60秒后將關閉空閑(IDLE)的連接,但是對正在工作的連接不影響。
之后保存退出,用
systemctl restart mysqld
重啟數據庫。之后我再次重啟我的系統,觀察數據庫的線程情況,發現,一分鍾之后,連接就銷毀的差不多了。問題解決。
如果是mac端的話,默認是沒有配置文件的
先用
mysql --help|grep 'my.cnf'
找到可以允許的配置文件路徑,我就放在/etc底下了。
之后參考這個老哥的做法,在mysqld底下加上那幾個配置就行。
