解析mysql中max_connections与max_user_connections的区别

时间:2022-03-19 22:52:58

在mysql的手册中已经对max_user_connections有一点说明,它是用来限制用户资源的,怎么限制用户资源呢?这里做了个小测试。
首先产看该全局变量的值
mysql> select @@max_user_connections;
+------------------------+
| @@max_user_connections |
+------------------------+
|                      0 |
+------------------------+
1 row in set (0.00 sec)
默认情况系是为0的
为0是什么意思呢?它是说不限制用户资源的。
在这里我改变一下它的值,并在查询,注意这改变在服务器重启后无效,想一直保存的话就放在选项文件里面!
mysql> set  @@global.max_user_connections=1;
Query OK, 0 rows affected (0.00 sec)
mysql> select @@max_user_connections;
+------------------------+
| @@max_user_connections |
+------------------------+
|                      1 |
+------------------------+
1 row in set (0.00 sec)
现在我重新开启一个连接
C:\Windows\System32>mysql -uroot -pweb
ERROR 1203 (42000): User root already has more than 'max_user_connections' activ
e connections
意思是这个用户已经达到最大的连接数,不能再连接拥有资源!
该参数只能对整体限制资源,不能对某个用户进行限制,如果需要对某个用户限制的话,你可以在权限表里面看到
        max_questions: 0
          max_updates: 0
      max_connections: 0
 max_user_connections: 0
这几个参数可以对某个用户进行限制。
max_connections 的意思是对整个服务器的用户限制!