ERROR 1040: Too many connections问题解决办法
出现此错误的原因,一种是访问量确实很高,MySQL服务器顶不住,这个时候就要考虑增加从服务器分散读压力,另外一种情况是MySQL配置文件中max_connections值过小。
分析原因
mysql的默认连接上只有100,也就是说连接数据超过100 就会有可能出现 Too Many Connections
修改my.cnf配置文件添加并需要重启:
[mysqld]
wait_timeout = 600
interactive_timeout = 600
查询MySQL的最大连接数:
代码如下 | |
mysql> show variables like 'max_connections'; |
查询MySQL响应的最大连接数:
代码如下 | |
mysql> show global status like 'max_used_connections'; |
说明:本地环境没什么参考价值,但是就上面的数据而言,MySQL过去所响应的最大连接数小于其允许的最大连接数,所以不会出现1040错误。
MySQL比较理想的最大连接数计算方式为:
代码如下 | |
max_used_connections / max_connections * 100% ≈ 85% |
即最大连接数占上限连接数的85%左右,如果发现比例在10%以下,MySQL服务器连接数上限设置的过高了。
问题找到解决办法
1、mysql -u root -p 进入不了,同样出现上述错误。
2、修改/etc/mysql/my.cnf(ubuntu系统,其他系统在/etc/my.cnf
代码如下 | |
[mysqld] |
3、重启
代码如下 | |
mysql /etc/init.d/mysql restart |
搞定了。