mysql中,max_connections表示最大连接数目, 可以修改(set GLOBAL max_connections = 3; 仅对mysql当前服务进程有效,如果mysql服务重启,则失效)。 我修改为3了, 如下:
mysql> show variables like 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 3 |
+-----------------+-------+
1 row in set (0.01 sec)
可以, 我发现, 实际上可以连接4个, 如下:
mysql> show status like 'Threads%';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Threads_cached | 0 |
| Threads_connected | 4 |
| Threads_created | 4 |
| Threads_running | 1 |
+-------------------+-------+
4 rows in set (0.00 sec)
mysql>
这是什么原因呢?MySQL会保留一个用于管理员(SUPER)登陆的连接,用于管理员连接数据库进行维护操作,即使当前连接数已经达到了max_connections。因此最大可连接数为max_connections+1, 所以可以有4个连接。继续增加连接, 会怎样呢?
ubuntu@VM-0-15-ubuntu:~$ sudo mysql -u root
ERROR 1040 (HY000): Too many connections
ubuntu@VM-0-15-ubuntu:~$
恩, 符合预期。