RHEL\CentOS 7 下 MySQL 连接数被限制为214个

问题

项目中,由于连接数过多,提示“Too many connections”,需要增加连接数。我在 /etc/my.cnf中修改了

max_connections = 2000

但是, 实际连接数一直被限制在 214

mysql> show variables like "max_connections";
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 214   |
+-----------------+-------+
1 row in set

MySQL max_connections 总是 214 。不能设大了?

环境

  • CentOS 7.1
  • MySQL 5.6.25

思考

如果我设置连接小于214时,比如 200,那么实际连接数就是 200,也就是说,我的配置文件是没有问题的。

查 MySQL 官方文档,里面说了

The maximum number of connections MySQL can support depends on the quality of the thread library on a given platform, the amount of RAM available, how much RAM is used for each connection, the workload from each connection, and the desired response time. Linux or Solaris should be able to support at 500 to 1000 simultaneous connections routinely and as many as 10,000 connections if you have many gigabytes of RAM available and the workload from each is low or the response time target undemanding. Windows is limited to (open tables × 2 + open connections) < 2048 due to the Posix compatibility layer used on that platform.

Increasing open-files-limit may be necessary. Also see Section 2.5, “Installing MySQL on Linux”, for how to raise the operating system limit on how many handles can be used by MySQL.

大概意思是 MySQL 能够支持的最大连接数量受限于操作系统,必要时可以增大 open-files-limit。换言之,连接数与文件打开数有关。

解决

执行

[root@emsc ~]# ulimit -n
1024

可知,操作系统最大文件描述符限制为 1024, 在 配置文件中添加

open_files_limit = 65535

实际上也没有生效

更改 MySQL 在 Linux 的最大文件描述符限制,编辑 /usr/lib/systemd/system/mysqld.service 文件,在文件最后添加:

LimitNOFILE=65535
LimitNPROC=65535

保存后,执行下面命令,使配置生效

$ systemctl daemon-reload
$ systemctl restart  mysqld.service

实际连接数到 2000 了,解决

mysql> show variables like "max_connections";
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 2000  |
+-----------------+-------+
1 row in set

参考

时间: 2024-10-28 23:36:48

RHEL\CentOS 7 下 MySQL 连接数被限制为214个的相关文章

CentOS 7下MySQL服务启动失败的快速解决方法_Mysql

今天,启动MySQL服务器失败,如下所示: [root@spark01 ~]# /etc/init.d/mysqld start Starting mysqld (via systemctl): Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe&qu

RHEL/CentOS 5 下 NAT 转发不工作的问题解决办法

TL;DR 如果你发现 RHEL/CentOS 5 下用 iptables 做的 NAT 转发规则不管用,请用 iptables -L -nv 检查一下 FORWARD 链里的内容,如果里面有一条直接转到 RH-Firewall-1-INPUT 的规则,那么你很有可能跟我们一样被坑了.尝试在 RH-Firewall-1-INPUT 链里把目标端口打开,那些规则应该就可以工作了. 公司的服务器上因为种种原因做了不少 iptables NAT 规则,用于做端口映射.我们发现有的规则可以工作,有的则不

RHEL/Centos/Fedora/下搭建vpn pptp 服务器步骤

  用vpn已经有很多年,然而一直因为懒惰原因,所以一直都没有写关于如何搭建vpn服务器的文章,今年兴致所致,分享一下个人搭建vpn server的过程,写的简陋,请勿拍砖.vpn的使用非常广泛,可谓大多网虫和技术股都需要用到的东西,不过看下文之前请先看看自己的服务器是否支持pptp方式的vpn服务器,具体请执行命令 modprobe ppp-compress-18 && echo ok 假如输出ok请继续, 假如不ok,说明服务器不支持.下面的文章可能对你没啥用. 第一步:安装pptpd

CentOS系统下mysql绑定多个ip地址访问

msyql配置文件my.cnf中有选项bind-address=127.0.0.1,就是说mysql server监听的是本地发来的请求,如果开放任意主机都可以请求,则写为0.0.0.0,但是这样又不太安全.监听某ip,指定此ip地址即可,但是要保证mysql的user中有允许此ip访问,否则不能对数据库操作.那么是否可以在配置里只规定几个ip呢? 简单直接回答:不可能 请参考:#option_mysqld_bind-address The MySQL server listens on a s

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

当最大连接数比较小时,可能会出现"1040 too many connection"错误. 可以通过修改配置文件来修改最大连接数,但我连配置文件在哪都不知道,应该怎么办呢? 首先需要重启mysql服务,执行命令:service mysql restart 也有可能是:service mysqld restart 登录mysql:mysql -uroot -p输入密码,回车: 登录成功后执行以下语句查询当前的最大连接数:select VARIABLE_VALUE from informa

CentOS 7 下安装 LEMP 服务(nginx、MariaDB/MySQL 和 php)

原文 CentOS 7 下安装 LEMP 服务(nginx.MariaDB/MySQL 和 php) LEMP 组合包是一款日益流行的网站服务组合软件包,在许多生产环境中的核心网站服务上起着强有力的作用.正如其名称所暗示的, LEMP 包是由 Linux.nginx.MariaDB/MySQL 和 PHP 组成的.在传统的 LAMP 包中使用的 Apache HTTP 协议服务器性能低下而且难于大规模集群,相比来说 nginx 的高性能及轻量级等特性,正是其的替代方案. MariaDB 是一款社

Mac OS X下MySQL 5.0的默认连接数

这段时间mysql上的开发过程中崩溃2次,一直没有找到原因,由于使用macbook已经内存满配,top查看也无异常.sar也正常.mysql日志也没有什么有价值的信息.本文介绍其解决方法:修改Mac OS X下MySQL 5.0的默认连接数. 这段时间服务器崩溃2次,一直没有找到原因,今天看到论坛发出的错误信息邮件,想起可能是MySQL的默认连接数引起的问题,一查果然,老天,默认 连接数才100, 怎么够呀,在网上找了半天资料,有说修改my.cnf的,有说修改safe_mysqld,试了,前者无

CentOS下MySQL安装后配置和设置

CentOS下MySQL安装后配置和设置: 1:安装完成路径: 1.数据库目录 /var/lib/mysql/ 2.配置文件 /usr/share/mysql(mysql.server命令及配置文件) 3.启动脚本 /etc/rc.d/init.d/(启动脚本文件mysql的目录) 4.相关命令 /usr/bin(mysqladmin mysqldump等命令) 注:1~3安装server安装后存在,4mysqladmin mysqldump在client安装后存在 查看数据库版本: m

在RHEL/CentOS 5/6下停用按下Ctrl-Alt-Del 重启系统的功能

在RHEL/CentOS 5/6下停用按下Ctrl-Alt-Del 重启系统的功能 在Linux里,由于对安全的考虑,我们允许任何人按下Ctrl-Alt-Del来重启系统.但是在生产环境中,应该停用按下Ctrl-Alt-Del 重启系统的功能. 在这篇文章里,我们将要介绍如何在RHEL和CentOS下停用该热键. 在RHEL 5.X和CentOS 5.X下 ### 保护init进程免于Ctrl-Alt-Del,像下面一样编辑'/etc/inittab'里由'ca::ctrlaltdel:'开头的