MySql版本:8.0.32
问题原因:MySql默认的最大连接数是151
当连接的线程数超过151时将会出现错误,导致too many connection。
查看最大连接数:
show variables like "max_connections";
解决办法:
1.修改最大连接数为1000
set GLOBAL max_connections=1000;
2.超过连接数的原因不仅仅是最大连接数少,也可修改线程保活机制(超时自动删除)。
查看超时关闭线程时间:
show global variables like 'wait_timeout';
系统默认超时关闭线程时间一般为28800。
我们将默认超时关闭线程时间修改为300:
set global wait_timeout=300;
注意:并不推荐使用更改关闭线程时间的办法,这将导致另一个问题:数据包丢失。
报错为:Packets out of order. Got: 0 Expected: 20
若出现该问题,请将超时关闭线程的时间更改回28800即可。