Linux 上 max_connections 的最大值是多少?

除了 MySQL 设置的 100,000 的限制之外,我们可以配置的 max_connections 的上限在很大程度上取决于操作系统。
Linux 有一个称为 max open files 的限制,这是“每次登录”定义的,表示进程可以打开的最大文件数。
默认值为 1024(我们可以使用 ulimit -n 查看)。

问题

当客户端尝试登录 MySQL 时,它有时可能会被拒绝并收到一条错误消息,“连接过多-Too many connections”。
这意味着已达到可以连接到服务器的最大客户端数。
客户端将不得不等待另一个客户端注销,或者管理员将不得不增加允许的最大连接数。

可以使用 SHOW STATUS 语句找到有关连接到服务器的信息:

$ mysql -u root -p
SHOW STATUS LIKE 'max_used_connections';

首先,我们应该确保应用程序在不再需要时关闭与服务器的连接。
但是,我们可以通过增加 max_connections 变量的值并可能减少 wait_timeout 的值来解决此错误,如果我们预计到服务器的许多连接没有被积极使用。

如何解决MySQL错误“Too many connections”
on it road .com

更改 max_connections 参数(临时)

要更改系统变量 max_connections 的值,可以使用 -max_connections 选项。
要在服务器运行时临时更改此变量,请输入以下 SQL 语句:

$ mysql -u root -p
mysql> SET GLOBAL max_connections = 512;

当 MySQL 服务器守护进程 (mysqld) 重新启动时,上述值将设置回默认值 151.
要永久更改,请使用以下方法。

更改 max_connections 参数(永久)

更改 max_connections 参数的更好方法是将此选项添加到选项文件( my.cnf 或者 my.ini ,具体取决于系统),以便下次重新启动服务器时生效。
假设我们正在使用 /etc/my.cnf 文件,请将以下行添加到其中。

# vi /etc/my.cnf
max_connections = 512

现在重新启动 mysqld 守护进程以使更改生效。

对于 CentOS/RHEL 6 :

# service mysqld restart

对于 CentOS/RHEL 7 :

# systemctl restart mysqld

解决方案

服务器允许的最大连接线程数包含在系统变量 max_connections 中。
默认值为 151.
要查看此变量设置的值,请运行以下 SQL 命令:

$ mysql -u root -p
mysql> SHOW VARIABLES LIKE 'max_connections';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 151   |
+-----------------+-------+
日期:2020-09-17 00:11:15 来源:oir作者:oir