MySQL通过MAX_USER_CONNECTIONS参数限制用户级并发连接数。1. 创建用户时可直接设置:CREATE USER ‘username’@’host’ IDENTIFIED BY ‘password’ WITH MAX_USER_CONNECTIONS 5;2. 对已有用户使用ALTER USER修改限制;3. 查询mysql.user表验证配置并可通过超限连接测试验证效果,超出时报错ERROR 1226;4. 全局连接数由max_connections控制,用户限制不可超过此值。
MySQL 可以通过设置用户级别的最大连接数来限制某个账户的并发连接数量,主要依赖 MAX_USER_CONNECTIONS 参数。这个功能在多用户共享数据库或需要资源隔离的场景中非常有用。
1. 创建用户时设置连接数限制
在创建新用户的时候,可以直接指定该用户最多允许的并发连接数。
CREATE USER ‘username’@’host’ IDENTIFIED BY ‘password‘ WITH MAX_USER_CONNECTIONS 5;
上面的语句创建了一个用户,限制其最多只能有 5 个并发连接。
2. 修改已有用户的连接数限制
如果用户已经存在,可以使用 ALTER USER 命令来修改其连接限制。
ALTER USER ‘username’@’host’ WITH MAX_USER_CONNECTIONS 10;
这样就把指定用户的最大并发连接数调整为 10。
3. 验证连接限制是否生效
可以通过查询 mysql.user 表来查看用户的连接数限制:
SELECT User, Host, max_user_connections FROM mysql.user WHERE User = ‘username’;
该语句会显示指定用户的最大连接数配置。
也可以通过尝试建立多个连接进行实际测试,当超过设定值时,MySQL 会报错:
ERROR 1226 (42000): User ‘username’ has exceeded the ‘max_user_connections’ resource
4. 全局连接数限制(可选)
除了用户级别,MySQL 还支持全局最大连接数控制,由系统变量 max_connections 控制:
SHOW VARIABLES LIKE ‘max_connections’;
这个是整个 MySQL 实例允许的最大连接数,不针对单个用户。如需调整,可在配置文件中设置:
[mysqld]
max_connections = 500
注意:用户连接限制不能超过全局 max_connections 的总限制。
基本上就这些。只要在创建或修改用户时加上 WITH MAX_USER_CONNECTIONS,就能有效控制每个用户的并发连接数量,避免个别用户占用过多连接资源。