MySQL: ERROR 1040: Too many connections异常

作者:Garany 发布于:2017-05-11 分类:破万卷书
一种原因是访问量过高,MySQL负载过高,这个时候就要考虑增加增加MySQL服务器或者做读写分离;
另一种原因是MySQL的中max_connections值配置过小。

max_connections 最大连接数,整个mysql服务器的最大连接数
max_user_connections 服务器响应的最大连接数,每个数据库用户的最大连接数

一、查看MySQL的最大连接数和响应的最大连接数
1.查看mysql的最大连接数
> show variables like '%max_connections%';
+------------------------+--------+
| Variable_name     | Value |
+------------------------+--------+
| max_connections | 151   |
+------------------------+--------+
1 row in set (0.00 sec)

2.查看服务器响应的最大连接数:
> show global status like 'Max_used_connections';
+--------------------------------+--------+
| Variable_name             | Value |
+--------------------------------+--------+
| Max_used_connections | 2      |
+--------------------------------+--------+
1 row in set (0.00 sec)

Max_used_connections / max_connections * 100% = 2/151 *100% ≈ 1%
比较理想的设置是:
Max_used_connections / max_connections * 100% ≈ 85%
如果比例小于10%,说明mysql服务器最大连接上限值设置过高。

二、设置MySQL最大连接数值。

方法1:
> set GLOBAL max_connections=256;
> show variables like '%max_connections%';
+------------------------+----------+
| Variable_name     | Value   |
+------------------------+----------+
| max_connections | 256     |
+------------------------+----------+
1 row in set (0.00 sec)

方法2:
# vim /etc/my.cnf
[mysqld]
max_connections=128

# /etc/init.d/mysqld restart
标签: linux mysql

我来说说