Mysql Too Many Connections

查看 mysql 已有的连接数

我们可以使用 SHOW PROCESSLIST; 查看前 100 条连接。

1
SHOW PROCESSLIST;

也可以使用 SHOW full PROCESSLIST; 查看所有连接。

1
SHOW full PROCESSLIST;

查看当前连接数

1
 show variables like '%max_connections%';

通过修改 MySQL 配置文件调整最大连接数

首先打开 MySQL 配置文件:

1
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

在 [mysqld] 下面找到 max_connections ,如果没有可直接添加。

1
2
3
4
5
6
[mysqld]
...

max_connections = 300

...

修改后重启 MySQL,使配置文件生效:

1
sudo systemctl restart mysql

进入容器查看一下:

1
2
3
4
5
6
7
8
mysql> show variables like '%max_connections%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| max_connections        | 2000  |
| mysqlx_max_connections | 100   |
+------------------------+-------+
2 rows in set (0.01 sec)

七. 提前布局,防患于未然

在 MySQL 配置文件中,有两个有关连接数的参数

  • max_connections:控制最大连接数。
  • max_user_connections:控制单个用户的最大连接数。当此参数为 100 时,那么任意用户(含 root 用户)最多可创建 100 个连接。

制定连接策略:

1
2
max_connections = 2000
max_user_connections= 300

当 MySQL 有 6 个用户时(不含 root ),单个用户最大连接数为 300,那么 6 个用户最多有 1800 连接。那么系统总会剩下 200 个连接留给 root 使用。

Licensed under CC BY-NC-SA 4.0
最后更新于 Jan 06, 2025 05:52 UTC
comments powered by Disqus
Built with Hugo
主题 StackJimmy 设计
Caret Up