MySQL报错:1040 Too many connections

12 篇文章 0 订阅
3 篇文章 0 订阅

现象:

MySQL客户端或应用代码报错出现关键字:Too many connections

使用MySQL的root权限账号,查看MySQL现状

a)、查看配置的总连接数

        show variables like '%connections%';

        如上图,可以看到配置连接数。

b)、查看当前使用的连接总数

        show global status like 'max_used_connections';

        当前MySQL已经占用的连接数。

常见错误原因及解决办法如下

1、MySQL配置的连接数不够

        登录MySQL,设置连接数

        临时修改:

                set GLOBAL MAX_CONNECTIONS=10000;

                set GLOBAL MAX_USER_CONNECTIONS=2000;

                #直接生效,不需重启MySQL;重启MySQL会失效。

        永久修改:

                vim /etc/my.cnf

                在[mysqld]模块,添加如下配置

                max_connections = 10000

                max_user_connections = 1500

                #不会直接生效,需重启MySQL。

2、Linux服务器的句柄数不足

        Linux服务器如果不进行参数调优,默认的单进程文件打开数是1024。此时会导致MySQL还未达到设置的1024以上的数值,就报错连接数不足。优化服务器句柄数的常用方法:

        临时修改:

                ulimit -HSn 65535

        永久修改:

                vim /etc/security/limits.conf

                在文件末尾添加以下内容

                * hard nofile 20000

                * soft nofile 15000

                #有些系统不能生效需要指定对应的用户名才行,不能用"*"

        系统Centos7.6及以上,修改方法。

        sed -i “s/#DefaultLimitCORE=/DefaultLimitCORE=infinity/g” /etc/systemd/system.conf

        sed -i “s/#DefaultLimitNOFILE=/DefaultLimitNOFILE=65535/g” /etc/systemd/system.conf

        sed -i “s/#DefaultLimitNPROC=/DefaultLimitNPROC=65535/g” /etc/systemd/system.conf

        需要重启服务器才能生效。

3、MysqlRouter代理的默认值限制

        项目中经常用到MysqlRouter代理服务,但很多人没有想到它也有连接数配置参数,如果不进行配置,参数的默认值是512

        修改配置文件mysqlrouter.conf

                vim /etc/mysqlrouter/mysqlrouter.conf

        在[routing:mycluster_rw]模块下添加max_connections配置

                max_connections=1500

        然后重启MysqlRouter参数生效。sudo systemctl restart mysqlrouter

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值