Mysql 1040报错Too many connections

177 阅读1分钟

连接不上的原因如下

1.连接数超过了mysql默认的连接数

2.错误连接太多,等待时间过长,导致很多连接未关闭

解决方案:

增大最大连接数(不推荐)

1.临时调整最大连接数量,该方法是不需要重启的

set GLOBAL max_connections = 300;

2.修改mysql配置文件最大连接数,默认位置:/etc/mysql/mysql.conf.d/mysqld.cnf。 修改max_connections的值

修改连接等待时间(推荐)

1.临时变更连接超时时间(无需重启)

SET GLOBAL interactive_timeout = 60;
SET GLOBAL wait_timeout = 60;

2.在配置文件中修改超时时间(需重启 MySQL 生效) 打开MySQL配置文件,默认位置/etc/mysql/mysql.conf.d/mysqld.cnf,修改对应的参数

[mysqld]
interactive_timeout=60
wait_timeout=60

查看当前配置的最大连接数

mysql> show variables like '%max_connections%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| max_connections        | 151   |
| mysqlx_max_connections | 100   |
+------------------------+-------+
2 rows in set (0.01 sec)

查看当前 MySQL 连接情况

SHOW PROCESSLIST; #查看前 100 条连接
SHOW full PROCESSLIST; #查看所有连接

查看当前连接数

mysql> show status like  'Threads%';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| Threads_cached    | 0     |
| Threads_connected | 114   |
| Threads_created   | 286   |
| Threads_running   | 2     |
+-------------------+-------+
4 rows in set (0.01 sec)