在 Debian 上限制 MySQL(通常是 MySQL / MariaDB)的连接数,可以从 服务端配置、用户级限制、系统资源、防火墙/代理 几个层面来做。下面按常用程度说明。
编辑配置文件(通常如下之一):
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
# 或
sudo nano /etc/mysql/my.cnf
添加或修改:
[mysqld]
max_connections = 200
说明:
max_connections:MySQL 允许的最大连接数修改后重启:
sudo systemctl restart mysql
查看当前值:
SHOW VARIABLES LIKE 'max_connections';
可以限制 每个 MySQL 用户 的最大连接数。
CREATE USER 'appuser'@'%' IDENTIFIED BY 'password'
WITH MAX_USER_CONNECTIONS 20;
ALTER USER 'appuser'@'%'
WITH MAX_USER_CONNECTIONS 20;
查看:
SELECT user, host, max_user_connections FROM mysql.user;
SET GLOBAL max_connections = 200;
⚠️ 重启后失效,仅用于应急。
在 mysqld.cnf 中:
wait_timeout = 28800
interactive_timeout = 28800
可适当调小(如 600 秒)。
MySQL 连接数受 open_files_limit 影响。
查看:
SHOW VARIABLES LIKE 'open_files_limit';
Debian 可修改:
sudo nano /etc/security/limits.conf
mysql soft nofile 65535
mysql hard nofile 65535
并确认 systemd:
[Service]
LimitNOFILE=65535
| 场景 | max_connections |
|---|---|
| 小网站 | 100–200 |
| 中型应用 | 300–500 |
| 高并发 | 800+(需调优内存) |
⚠️ 连接数 ≠ 性能,过多连接反而拖慢 MySQL。
如果你愿意,可以告诉我:
max_connections 和报错信息我可以帮你给一套更精确的配置。