Mysql Too many connections 解决办法(linux)

原因:
  mysql配置参数中设定的并发连接数太少或者系统繁忙导致连接数被占满。
  连接数超过了 MySQL 设置的值,与 max_connections 和 wait_timeout 都有关。
  wait_timeout 的值越大,连接的空闲等待就越长,这样就会造成当前连接数越大。
  
mysql8.0 与之前的版本解决办法不同
查看mysql版本

select version();

在这里插入图片描述
mysql8.0 解决办法(只需要线上修改)
mysql8.0 使用 persist 参数会持久化到配置文件,比较简单
设置等待超时时间

set persist wait_timeout=120;

设置交互超时时间

set persist interactive_timeout=300;

设置最大链接数(一般500-1000合理)

set persist max_connections=1000;

----------------------------------------------------------------------------------------------------------------------------------
mysql5 – MySQL 7 解决方式:线上修改 + 配置文件修改(配置文件是为了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

Mysql Too many connections 解决办法(linux)_第1张图片

下边是查看配置参数和运行线程

查看哪些线程正在运行

show full processlist;

Mysql Too many connections 解决办法(linux)_第2张图片

查看链接数配置

show global variables like '%CONNECTIONS%';

Mysql Too many connections 解决办法(linux)_第3张图片
查看超时时间配置

show global variables like '%timeout%'; 

Mysql Too many connections 解决办法(linux)_第4张图片

你可能感兴趣的:(mysql)