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

https://www.cnblogs.com/weslie/articles/8553391.html