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,而不考虑用户!
时间: 2025-01-02 18:28:01

mysql 的max_connections和max_user_connections 的区别的相关文章

php学习之道:mysql SELECT FOUND_ROWS()与COUNT(*)用法区别

在mysql中 FOUND_ROWS()与COUNT(*)都可以统计记录,如果都一样为什么会有两个这样的函数呢,下面我来介绍SELECT FOUND_ROWS()与COUNT(*)用法区别 SELECT语句中经常可能用LIMIT限制返回行数.有时候可能想要知道如果没有LIMIT会返回多少行,但又不想再执行一次相同语句.那么,在SELECT查询中包含SQL_CALC_FOUND_ROWS选项,然后执行FOUND_ROWS()就可以了:  代码如下 复制代码 mysql> SELECT SQL_CA

用count(*)还是count(列名) || Mysql中的count()与sum()区别

Mysql中的count()与sum()区别 首先创建个表说明问题 CREATE TABLE `result` ( `name` varchar(20) default NULL, `subject` varchar(20) default NULL, `score` tinyint(4) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 插入一些数据, insert into result values ('张三','数学',90), ('张三

mysql中char与varchar的区别分析

原文网址:http://www.jb51.net/article/23575.htm mysql中char与varchar的区别分析 作者: 字体:[增加 减小] 类型:转载 在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定的长度,而varchar属于可变长的字符类型. char与varchar的区别 char (13)长度固定, 如'www.jb51.net' 存储需要空间 12个字符 varchar(13) 可变长 如'w

MongoDB与MySQL的操作对比表及区别介绍

MongoDB与MySQL的操作对比表及区别介绍 MySQL与MongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库.它们各有各的优点,关键是看用在什么地方.所以我们所熟知的那些SQL(全称Structured Query Language)语句就不适用于MongoDB了,因为SQL语句是关系型数据库的标准语言. 以我们公司项目为例,在早期的项目中,都在使用关系型数据库,用过SQLServer,Orac

mysql的过程和Oracle的区别

mySQL 和 Oracle 不一样  , mysql 中的function 中, 没有 CREATE OR REPLACE如果需要用到这句,可以使用 DROP FUNCTION IF EXISTS `GetUserName`; CREATE FUNCTION `GetUserName`(nUserID INT) ...代替. 如: (错误) CREATE OR REPLACE PROCEDURE sp_test() BEGIN SET @z = 'hello World'; SELECT @z

(转)MySQL中In与Exists的区别

背景:总结mysql相关的知识点. 如果A表有n条记录,那么exists查询就是将这n条记录逐条取出,然后判断n遍exists条件. select * from user where exists select * from user); #等价于 select * from user where exists (select 1); in查询就是先将子查询条件的记录全都查出来,假设结果集为B,共有m条记录,然后再将子查询条件的结果集分解成m个,再进行m次查询. select * from us

Mysql如何查字段的长度,Mysql中length()、char_length()的区别

1.今天发生了一件有意思的事情,传输的数据大于标准定的字段长度了,我把字段长度调大了,把数据传输过来了.谁知道,人家的数据不符合标准,要删除了重新搞,那么你如何将超长的数据删除呢,或者将超长的数据查询出来. 答:剧透一下,其实使用char_length()查询出来的,就可以把这些删除掉,然后将调大的字段长度调小就行了.备注,我实际操作的字段都是中文字符哈,别再写教程写出血案了. 2.先了解一下,Mysql中length().char_length()的区别. 1).length():mysql里

MySQL中的max_connections和max_user_connections 及 MySQL服务器最大连接数的合理设置

max_connections 是指整个mysql服务器的最大连接数: max_user_connections 是指每个数据库用户的最大连接数,比如:虚拟主机可以用这个参数控制每个虚拟主机用户的数据库最大连接数: MySQL服务器的连接数并不是要达到最大的100%为好,还是要具体问题具体分析,下面就对MySQL服务器最大连接数的合理设置进行了详尽的分析,供您参考. 我们经常会遇见“MySQL: ERROR 1040: Too many connections”的情况,一种是访问量确实很高,My

Mysql几种索引类型的区别及适用情况

如大家所知道的,Mysql目前主要有以下几种索引类型:FULLTEXT,HASH,BTREE,RTREE. 那么,这几种索引有什么功能和性能上的不同呢? FULLTEXT 即为全文索引,目前只有MyISAM引擎支持.其可以在CREATE TABLE ,ALTER TABLE ,CREATE INDEX 使用,不过目前只有 CHAR.VARCHAR ,TEXT 列上可以创建全文索引.值得一提的是,在数据量较大时候,现将数据放入一个没有全局索引的表中,然后再用CREATE INDEX创建FULLTE