MySQL显示状态-活动或总连接数?


206

当我运行时,show status like 'Con%'它显示的连接数为9972,并且一直在增长。这是活动的连接数还是总共建立的连接数?

Answers:


401

根据docs,它表示历史记录中的总数:

Connections

与MySQL服务器的连接尝试次数(成功或失败)。

您可以通过状态变量查看活动连接的数量Threads_connected

Threads_connected

当前打开的连接数。

mysql> show status where `variable_name` = 'Threads_connected';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| Threads_connected | 4     |
+-------------------+-------+
1 row in set (0.00 sec)

...或通过show processlist命令:

mysql> show processlist;
+----+------+-----------------+--------+---------+------+-------+------------------+
| Id | User | Host            | db     | Command | Time | State | Info             |
+----+------+-----------------+--------+---------+------+-------+------------------+
|  3 | root | localhost       | webapp | Query   |    0 | NULL  | show processlist | 
|  5 | root | localhost:61704 | webapp | Sleep   |  208 |       | NULL             | 
|  6 | root | localhost:61705 | webapp | Sleep   |  208 |       | NULL             | 
|  7 | root | localhost:61706 | webapp | Sleep   |  208 |       | NULL             | 
+----+------+-----------------+--------+---------+------+-------+------------------+
4 rows in set (0.00 sec)

连接代表用户吗?那么,如果在进行数据库查询的页面上有200个用户,将有200个连接吗?
Diego Queiroz

是的,有人可以澄清一下。我也有同样的问题。另外,这些变量是否在每次MySQL服务重启后或服务器重启后重置?
LonelyRogue

@Diego Queiroz并不是那么简单。如果开发人员都密切注意并且每个用户仅需要连接一个数据库,那么可以,每个数据库都将是一个用户。但是可能还有其他运行的实用程序或备份服务也需要连接。
Ryan Shillington

@LonelyRogue是,服务器重新启动后,每个连接都需要重新连接。许多程序/库将自动连接,因此连接数可能会迅速填满,而无需显式执行任何操作。但是MySQL重启后不会保留任何旧的连接。
Ryan Shillington

134
SHOW STATUS WHERE `variable_name` = 'Threads_connected';

这将显示所有打开的连接。


17

这是到现在为止与服务器的连接总数。要查找当前的连接状态,可以使用

mysqladmin -u -p扩展状态| grep -wi'threads_connected \ | threads_running'| awk'{print $ 2,$ 4}'

这将向您显示:

Threads_connected 12

Threads_running 1  

Threads_connected: Number of connections

Threads_running: connections currently running some sql

13

要查看更完整的列表,可以运行:

show session status;

要么

show global status;

请参阅此链接以更好地了解用法。

如果您想了解有关数据库的详细信息,可以运行:

status;

11

你也可以

SHOW STATUS WHERE `variable_name` = 'Max_used_connections';

1
max_used_connections也是有用的
coolnodje

3

为了检查允许的最大连接数,您可以运行以下查询:

SHOW VARIABLES LIKE "max_connections";

要检查活动连接数,可以运行以下查询:

SHOW VARIABLES LIKE "max_used_connections";

希望能帮助到你。



-1

它应该是当前活动连接数。运行命令processlist以确保。

参考网址:http : //www.devdaily.com/blog/post/mysql/how-show-open-database-connections-mysql

编辑:打开的数据库连接数请在这里看看,这里描述了实际的线程数(连接数)!


2
我发现参考链接很有用。例如,show status like '%onn%';是一个非常有用的查询。
viddik13

1
这个答案是错误的,应该删除。查看其他答案。
dr_

来自dev.mysql.com/doc/refman/8.0/en/…:“与MySQL服务器的连接尝试次数(成功或失败)”。它不是活动连接的数量。
PYB
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.