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底下加上那几个配置就行。