原因
- 一次项目过程中,mysql总是出现Too many connections(当前连接数过多)经查询才知道,mysql配置参数中设定的并发连接数太少
(一般就100连接数)
或者系统繁忙导致连接数被占满。 - 一旦连接数超过了 MySQL 设置的值,就会报
Too many connections
- 这个错误与 max_connections 和 wait_timeout 都有关。wait_timeout 的值越大,连接的空闲等待就越长,这样就会造成当前连接数越大。
一、查看mysql版本
- 打开 navicat 新建查询语句,输入以下语句并运行,就能看到当前 mysql 的版本号
select version();
确定 mysql 版本号是8.0以上的就能继续执行以下方法
二、解决方法
1. mysql8.0++ 解决办法(只需要线上修改)还是用 navicat
也是用 navicat 新建查询,然后按步骤输入以下语句
设置等待超时时间
set persist wait_timeout=120;
设置交互超时时间
set persist interactive_timeout=300;
设置最大链接数(一般500-1000合理)
set persist max_connections=600;
修改完成之后,以下语句查看当前最大连接数,
不放心可关闭数据库,重新启动,再查询一次
show variables like '%max_connections%';
三、总结
1. 关于 mysql 8.0以下的版本
- 其解决方式也能通过线上修改,但是线上修改(重启数据库之后会恢复为默认)
- 一般操作是线上修改 + 配置文件修改(配置文件是为了mysql重启时生效)
- 这里就不再赘述,有需要的小伙伴可以自行查阅资料,这里列举的解决办法只针对 Mysql8.0 以上的版本
参考文章:https://blog.csdn.net/qq_16457573/article/details/97675112