CentOS7下mysql最大连接数设置 1040 too many connection

最近做项目经常遇到 too many connection 的错误,虽然之前都修改过不过经过centos的升级,又发生了一系列的变化。

一、首先用最常用的方式修改,打开mysql(mariadb)的配置文件

vim /etc/my.cnf

找到[mysqld]下面的参数,没有则添加。

wait_timeout=120
interactive_timeout=120
max_connections=4096
以下是my.cnf文件的信息
[mysqld]
...
wait_timeout=120
interactive_timeout=120
#set max number of connections
max_connections=4096

然后接着保存my.cnf,重启mysql

systemctl start mariadb

使用命令查看是否有改变,进入mysql

mysql -uroot -p

接着输入下面查看最大连接数。

MariaDB [(none)]> show variables like '%max_connections%';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| extra_max_connections | 1     |
| max_connections       | 214  |
+-----------------------+-------+
2 rows in set (0.00 sec)

 你会发现还是没有改变,这就是centos7系统限制问题。

二、开始修改mariadb.service的文件

vim /usr/lib/systemd/system/mariadb.service

找到下面的参数,没有则添加。

[Service]
LimitNOFILE=65535
LimitNPROC=65535

重新加载服务配置文件,并且重启mysql服务。

systemctl daemon-reload
systemctl restart mariadb.service

  

这时候重复一的操作。

三、上面的操作都还不行,那就是centos7系统的本身限制

现在就是修改系统配置,查看系统限制

[root@xxx]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 3885
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65535
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 65535
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

 打开配置文件limits.conf

vim /etc/security/limits.conf

找到配置资源限制参数nofile,没有文件尾部加入下面的参数配置。

* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535

 保存修改,重启centos服务器,这时候查看所有参数是否改变。

ulimit -a
#或者
#ulimit -n

如果还是没改变可以尝试 重启supervisord服务(如果属于这个子线程)。

以上就是我所遇到1040 too many connection 问题的解决,希望对大家有所帮助!

原文地址:https://www.cnblogs.com/zrl66/p/12678088.html