Too many connections
大约 1 分钟mysql
概述
数据库连接太多,拒绝新的连接。
指令
# 查看连接数,可以发现有很多连接处于sleep状态,这些其实是暂时没有用的,所以可以kill掉
show processlist;
# 查看最大连接数(数据库配置中设置的允许的最大连接数量),
# 应该是与上面查询到的连接数相同,才会出现too many connections的情况
show variables like 'max_connections';
# 修改最大连接数,但是这不是一劳永逸的方法,应该要让它自动杀死那些sleep的进程。
set GLOBAL max_connections=500;
# 这个数值指的是mysql在关闭一个非交互的连接(软件中的数据库连接)之前要等待的秒数,默认是28800s
# 使用数据库开发IDE的连接称作交互式连接,java等服务端后台程序称作非交互式连接
# 注意这里单位是秒,不是毫秒
show global variables like 'wait_timeout';
# 修改这个数值,这里可以随意,最好控制在几分钟内
set global wait_timeout=300;
# 设置交互式连接的超时断开的时长
set global interactive_timeout=500;
# 上面是及时修改,要永久则需要修改配置文件
# 打开 mysql 后台配置文件
vim /usr/lib/systemd/system/mysqld.service
# 找到 LimitNOFILE 修改大点,该参数表示允许 mysql 打开文件的上限
LimitNOFILE = 65535
# 刷新后台服务
systemctl daemon-reload
# 修改 mysql 配置文件
vim /etc/my.cnf
# 在其中添加 max_connections=1000,要重启服务
systemctl restart mysqld
