百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> ERROR 1040: Too many connections问题解决办法
分享文章到:

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

发布时间:01/15 来源: 浏览: 关键词:
今天在发现网站日志发现有大量的ERROR 1040: Too many connections连接错误了,这个是mysql连接过多啊,但本站几乎为html页面了,下面小编来给各位同学介绍解决办法。

出现此错误的原因,一种是访问量确实很高,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';
    +-----------------+-------+
    | Variable_name | Value |
    +-----------------+-------+
    | max_connections | 100 |
    +-----------------+-------+
    1 row in set (0.00 sec)

查询MySQL响应的最大连接数:

 代码如下

    mysql> show global status like 'max_used_connections';
    +----------------------+-------+
    | Variable_name | Value |
    +----------------------+-------+
    | Max_used_connections | 5 |
    +----------------------+-------+
    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

 代码如下

[mysqld]
port=3306
#socket=MySQL
skip-locking
set-variable = key_buffer=16K
set-variable = max_allowed_packet=1M
set-variable = thread_stack=64K
set-variable = table_cache=4
set-variable = sort_buffer=64K
set-variable = net_buffer_length=2K
set-variable = max_connections=1000

3、重启

 代码如下

mysql  /etc/init.d/mysql restart

搞定了。

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有4人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板