用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > mysql教程

ERROR 1040: Too many connections问题解决办法

时间:2015-01-23  来源:西部数据  作者:西部数据

今天在发现网站日志发现有大量的ERROR 1040:Too many connections连接错误了,这个是mysql连接过多啊,但本站几乎为html页面了,下面小编来给各位同学介绍解决办法.

出现此错误的原因,一种是访问量确实很高,MySQL服务器顶不住,这个时候就要考虑增加从服务器分散读压力,另外一种情况是MySQL配置文件中max_connections值过小.

分析原因:mysql的默认连接上只有100,也就是说连接数据超过100 就会有可能出现 Too Many Connections.

修改my.cnf配置文件添加并需要重启:

  1. [mysqld] 
  2. wait_timeout = 600 
  3. interactive_timeout = 600 

查询MySQL的最大连接数,代码如下:

  1. mysql> show variables like 'max_connections'
  2. +-----------------+-------+ 
  3. | Variable_name | Value | 
  4. +-----------------+-------+ 
  5. | max_connections | 100 | 
  6. +-----------------+-------+ 
  7. 1 row in set (0.00 sec) 

查询MySQL响应的最大连接数,代码如下:

  1. mysql> show global status like 'max_used_connections'
  2. +----------------------+-------+ 
  3. | Variable_name | Value |   //phpfensi.com 
  4. +----------------------+-------+ 
  5. | Max_used_connections | 5 | 
  6. +----------------------+-------+ 
  7. 1 row in set (0.00 sec) 

说明:本地环境没什么参考价值,但是就上面的数据而言,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,代码如下:

  1. [mysqld]  
  2. port=3306  
  3. #socket=MySQL  
  4. skip-locking  
  5. set-variable = key_buffer=16K  
  6. set-variable = max_allowed_packet=1M  
  7. set-variable = thread_stack=64K  
  8. set-variable = table_cache=4  
  9. set-variable = sort_buffer=64K  
  10. set-variable = net_buffer_length=2K  
  11. set-variable = max_connections=1000 

3、重启,代码如下:mysql  /etc/init.d/mysql restart 搞定了.

来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
栏目更新
栏目热门