mysql 的max_connections和max_user_connections 的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 的max_connections和max_user_connections 的区别相关的知识,希望对你有一定的参考价值。
----查看max_user_connections 默认值 mysql> show variables like ‘max_user_connections‘; +----------------------+-------+ | Variable_name | Value | +----------------------+-------+ | max_user_connections | 0 | +----------------------+-------+ 1 row in set (0.00 sec) ---设置 max_user_connections mysql> set @@global.max_user_connections=1; Query OK, 0 rows affected (0.03 sec) mysql> select @@max_user_connections; +------------------------+ | @@max_user_connections | +------------------------+ | 1 | +------------------------+ 1 row in set (0.00 sec) 上面参数设置完后窗口,要重新登陆一下 [email protected] ~]# mysql -uroot -pmysql 然后再开一个窗口登陆就会报如下错误: [email protected] ~]# mysql -uroot -pmysql Warning: Using a password on the command line interface can be insecure. ERROR 1203 (42000): User root already has more than ‘max_user_connections‘ active connections 另外在登陆一个用户u2,正常登陆,但是在登陆一个u2用户,就会报错: [email protected] mysql]# mysql -uu2 -pu2 Warning: Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 147 Server version: 5.6.27-enterprise-commercial-advanced MySQL Enterprise Server - Advanced Edition (Commercial) Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement. max_user_connections 针对用户设计的 下面我们来看看max_connections 的作用 mysql> select @@max_connections; +-------------------+ | @@max_connections | +-------------------+ | 151 | +-------------------+ 1 row in set (0.00 sec) mysql> set @@global.max_connections=2; Query OK, 0 rows affected (0.00 sec) mysql> select @@max_connections; +-------------------+ | @@max_connections | +-------------------+ | 2 | +-------------------+ 1 row in set (0.00 sec) 上面参数设置完后窗口,要重新登陆一下 [[email protected] mysql]# mysql -uroot -pmysql 在开一个窗口session2正常登陆: [[email protected] mysql]# mysql -uroot -pmysql 再开第三个窗口,session3 登陆的时候报错 [[email protected] ~]# mysql -uroot -pmysql Warning: Using a password on the command line interface can be insecure. ERROR 1040 (HY000): Too many connections [[email protected] ~]# mysql -uu2 -pu2 Warning: Using a password on the command line interface can be insecure. ERROR 1040 (HY000): Too many connections 实验完毕后,改回原来的参数 mysql> set @@global.max_user_connections=0; Query OK, 0 rows affected (0.00 sec) mysql> select @@max_user_connections; +------------------------+ | @@max_user_connections | +------------------------+ | 0 | +------------------------+ 1 row in set (0.00 sec) mysql> set @@global.max_connections=200; Query OK, 0 rows affected (0.00 sec) mysql> select @@max_connections; +-------------------+ | @@max_connections | +-------------------+ | 200 | +-------------------+ 1 row in set (0.00 sec) 结论: max_user_connections:限制每个用户的session连接个数,例如max_user_connections=1 ,那么用户u1只能连接的session数为1,如果还有用户u2,还是可以连接,但是连接数仍然为1 max_connections :是对整个服务器的用户限制,整个服务器只能开这么多session,而不考虑用户!
以上是关于mysql 的max_connections和max_user_connections 的区别的主要内容,如果未能解决你的问题,请参考以下文章
MySQL 最大连接数(max_connections)上限214问题
centos7 mariadb mysql max_connections=214 无法修改的问题
CentOS中设置Mysql的最大连接数max_connections(用于解决too many connections的问题)