Mysql: 查看到到给定数据库的所有打开连接?

使用 im mysql 的管理权限,如何查看服务器中到特定数据库的所有打开连接?

263272 次浏览

您可以调用 MySQL显示状态命令

显示类似“ Conn%”的状态;

更多信息请阅读 显示打开的数据库连接

命令是

SHOW PROCESSLIST

不幸的是,它没有缩小的参数。如果你需要它们,你可以在命令行中完成:

mysqladmin processlist | grep database-name

在查询浏览器中右键单击数据库并选择 processlist

你也可以使用:

mysql> show status like '%onn%';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| Aborted_connects         | 0     |
| Connections              | 303   |
| Max_used_connections     | 127   |
| Ssl_client_connects      | 0     |
| Ssl_connect_renegotiates | 0     |
| Ssl_finished_connects    | 0     |
| Threads_connected        | 127   |
+--------------------------+-------+
7 rows in set (0.01 sec)

随便用 Mysql-server-status-variable 或 < a href = “ https://dev.mysql.com/doc/refman/5.5/en/too-many-Connections.html”> Too-many-connect-problem

如果您正在运行一个 * nix 系统,还要考虑 我的上衣

若要将结果限制为一个数据库,请在运行时按“ d”,然后键入数据库名称。

这对于最新的 MySQL 版本来说应该足够了:

SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE DB like "%DBName%";

SQL: 显示完整的处理清单;

这就是 MySQL 工作台所做的。

在 MySql 中,以下查询将显示打开连接的总数:

show status like 'Threads_connected';

从这里的监视上下文可以很容易地查看到按数据库排序的所有数据库的连接。有了这些数据,很容易监控。

SELECT DB,USER,HOST,STATE FROM INFORMATION_SCHEMA.PROCESSLIST ORDER BY DB DESC;
+------+-------+---------------------+-----------+
| DB   | USER  | HOST                | STATE     |
+------+-------+---------------------+-----------+
| web  | tommy | 201.29.120.10:41146 | executing |
+------+-------+---------------------+-----------+

如果我们遇到任何主机热最大连接,然后无法连接,那么我们可以通过刷新重置主机表,如下所示:

FLUSH HOSTS;