【发布时间】:2009-10-25 11:24:47
【问题描述】:
有了 mysql 的管理权限,我如何查看到我的服务器中特定数据库的所有打开连接?
【问题讨论】:
有了 mysql 的管理权限,我如何查看到我的服务器中特定数据库的所有打开连接?
【问题讨论】:
命令是
SHOW PROCESSLIST
很遗憾,it has no narrowing parameters。如果您需要它们,您可以从命令行执行:
mysqladmin processlist | grep database-name
【讨论】:
mysqladmin -i 1 processlist 每秒刷新一次输出。
mysqladmin --user=[USERNAME] --password=[PASSWORD] -i 1 processlist
watch -n1 mysqladmin 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-variables 或 Too-many-connections-problem
【讨论】:
%onn% 而不是%conn%?
在 MySql 中,以下查询将显示打开的连接总数:
show status like 'Threads_connected';
【讨论】:
对于最新的 MySQL 版本,这应该可以解决问题:
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE DB = "elstream_development";
【讨论】:
mysqladmin。
从这里的监控上下文中,您可以轻松查看到按数据库排序的所有数据库的连接。有了这些数据就可以轻松监控。
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;
【讨论】:
【讨论】:
%onn% 而不是%conn%?
%onn% 和 %conn% 仍然有效。没有区别。
SQL: 显示完整的进程列表;
这就是 MySQL Workbench 的作用。
【讨论】:
在查询浏览器中右键单击数据库并选择进程列表
【讨论】:
如果您运行的是 *nix 系统,还请考虑 mytop。
要将结果限制为一个数据库,请在运行时按“d”,然后输入数据库名称。
【讨论】:
show processlist吗?
show processlist的输出满足,那你为什么还需要mytop呢?