too many connection
问题描述: 在腾讯云服务器上部署了mysql调配项目,结果调着调着mysql就会报错, too many connection
此时Linux上mysql无法登录,也不能通过Navicat连接。
先解决无法登录的情况,登录Linux服务器,更改my.conf文件。
Linux系统是在:/etc/my.cnf
在[mysqld]下添加
skip-grant-tables
然后重启mysql后,
mysql -u root -p
登录后记得把my.conf的注销掉再重启,即可正常使用mysql
最后开始试图解决问题。
use mysql;
show processlist;
发现数据库线程全都是在sleep状态,而且明明就两个人启动项目,却有上百条连接。
于是开始尝试解决:
- 改动项目中配置的hikari线程池参数
hikari:
maximum-pool-size: 500
idleTimeout: 200000
connectionTimeout: 30000
maxLifetime: 200000
minimum-idle: 20
- 在my.conf中增加了:
#为设置最大的连接数
max_connections=1000
#设置每用户最大的 连接数300
max_user_connections=500
#10分钟没有交互将关闭连接
wait_timeout = 200
#服务器关闭交互式连接前等待活动的秒
interactive_timeout = 900
之后就没有出现该问题了。