答案:通过设置max_user_connections限制用户并发连接数。首先查看并配置全局变量max_user_connections,再在创建或修改用户时使用WITH MAX_USER_CONNECTIONS指定具体数值,最后查询mysql.user表验证设置,从而有效控制单个用户的并发连接,防止资源滥用。

在 MySQL 中限制用户连接数,主要通过设置用户的最大并发连接数来实现。这个限制可以在创建用户或修改用户时指定,依据的是 MySQL 的 max_user_connections 系统变量。
1. 确保全局设置允许用户连接数限制
MySQL 默认的 max_user_connections 值为 0,表示不限制。要启用用户级连接限制,需先确保该值被正确设置。
查看当前全局设置:
SHOW VARIABLES LIKE ‘max_user_connections’;
如果需要修改全局限制(影响所有未单独设置的用户),可在配置文件中设置,例如在 my.cnf 或 my.ini 中添加:
[mysqld]
max_user_connections = 100
重启服务或动态设置(部分环境支持):
SET GLOBAL max_user_connections = 100;
2. 创建用户时限制连接数
使用 CREATE USER 语句时,通过 WITH MAX_USER_CONNECTIONS 指定该用户最多允许的并发连接数。
示例:创建一个最多允许 5 个并发连接的用户:
CREATE USER ‘dev_user’@’localhost’
IDENTIFIED BY ‘password‘
WITH MAX_USER_CONNECTIONS 5;
3. 修改已有用户的连接数限制
对于已存在的用户,使用 ALTER USER 来调整其最大连接数。
示例:将用户 ‘dev_user’@’localhost’ 的最大连接数改为 3:
ALTER USER ‘dev_user’@’localhost’
WITH MAX_USER_CONNECTIONS 3;
修改后无需重启,但新连接才会受限制。
4. 验证用户连接限制
可以通过查询 mysql.user 表来确认用户的连接数限制。
执行:
select User, Host, max_user_connections FROM mysql.user WHERE User = ‘dev_user’;
返回结果中的 max_user_connections 字段即为该用户的限制值。
基本上就这些。只要合理设置 MAX_USER_CONNECTIONS,就能有效控制单个用户的并发连接,避免资源滥用。注意这个限制是“同时连接数”,不是累计连接次数。不复杂但容易忽略。