MySQL max_user_connections与max_connections的区别

12

遗憾的是我无法在任何地方找到简单明了的解释,即使在MySQL文档中也没有。

一些人在各种论坛中说,max_user_connections不能大于max_connections? 例如:如果一个用户有3 max_user_connections,另一个用户有15 max_user_connections,那么他们说max_connections必须至少大于3+15 = 18

然而,MySQL文档指出,max_user_connections的最大允许值为4294967295,这比max_connections的最大允许值100000要大得多

请问有人可以解释一下MySQL中这两个选项是如何影响彼此的。


1
忽略限制,它们并不能告诉你任何关于使用的信息,也不用来解释差异。 - user557846
我投票关闭此问题,因为它在手册中已经清楚地解答了。 - user557846
3
这里的具体问题是max_user_connections和max_connections之间的连接和关系...没有任何资源直接说明两者之间的关系...这个澄清很必要...因此我提出了这个问题...请不要关闭它。 - Rakib
2个回答

14

max_user_connections

限制客户端使用 MySQL 服务器资源的一种方法是将全局系统变量 max_user_connections 设置为非零值。这将限制任何给定帐户可以同时建立的连接数,但不会限制客户端连接后可以执行的操作。此外,设置 max_user_connections 不会启用对单个帐户的管理。MySQL 管理员感兴趣的是这两种类型的控制。

max_connections

允许的最大同时客户端连接数。默认情况下,此值为 151。


dagon 的评论:

max_connections = 总连接限制
max_user_connections = 每个用户限制


因此,max_user_connections 的值不能超过 max_connections 的值。


总之:max_connections = 总连接数限制,max_user_connections = 每个用户的连接限制。 - user557846
1
所以这证实了我的疑问,即 max_user_connections 不能超过 max_connections ... 对吗? - Rakib
1
感谢您的反馈...您能否编辑您的答案,以包含那个具体的澄清...我已经看到太多人在太多地方询问这个澄清,但没有任何直接的联系或备注。 - Rakib

0
尽管两者都定义了同时连接的上限,但max_connections仅具有全局范围(即服务器的连接限制),而max_user_connections具有全局范围和会话范围(即每个用户的连接限制)。
正如提到的,max_connections的最大值显然较小(比max_user_connections),但是如果将其默认值增加到一定程度,您可能会遇到操作系统对每个进程打开文件描述符数量的限制。比较最大值会误导。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接