写在前面
由于之前Windows测试服上安装的 MySQL 5.6.17 默认最大的连接数是151,MySQL8 以后默认的最大连接数只有100,这两天部署了几个SpringBoot应用程序之后,数据库连接瞬间就崩了,too many connections,于是就把MySQL服务重新安装了一下,指定了my.ini,并在配置文件中加了几行配置。
修改配置
[mysqld]
wait-timeout=60
interactive_timeout=60
max_connections=501
在mysql的bin目录下执行:
mysqld --defaults-file=C:\software\mysql-5.6.17-winx64\my.ini mysql
服务被成功创建了
重新启动SpringBoot 应用,做下测试,用以下命令查看配置是否生效
show variables like 'max_connections';
show variables like '%timeout%';
show full processlist;
总结
最大连接数也不是说越大越好,要根据总体的负载和服务器的硬件配置来决定;配置太大会导致mysqld占用的系统资源增加,最直观的感受就是内存上去了,所以要根据实际情况按需配置,不然就会造成不必要的浪费。另外连接的超时回收时间间隔也需要根据业务执行的耗时来调整,不是越低越好,默认是8小时,如果调整成只有几秒钟大概率会触发连接被强制关闭的异常。