原因:
mysql配置参数中设定的并发连接数太少或者系统繁忙导致连接数被占满。
连接数超过了 MySQL 设置的值,与 max_connections 和 wait_timeout 都有关。
wait_timeout 的值越大,连接的空闲等待就越长,这样就会造成当前连接数越大。
解决方式:线上修改 + 配置文件修改(配置文件是为了mysql重启时生效)
1、线上修改(重启之后会恢复为默认)
设置等待超时时间
set global wait_timeout=120;
设置交互超时时间
set global interactive_timeout=300;
设置最大链接数(一般500-1000合理)
set global max_connections=1000;
2、配置文件修改(mysql重启时读取)
打开 /etc/my.cnf ,添加如下几行
max_connections=1000
wait_timeout=120
interactive_timeout=300
下边是查看配置参数和运行线程
查看哪些线程正在运行
show full processlist;
查看链接数配置
show global variables like '%CONNECTIONS%';
查看超时时间配置
show global variables like '%timeout%';