如何获取连接到mysql服务器的主机列表

问题描述:

我想获得连接到mysql服务器的主机列表。我怎么能得到这个? 连接到mysql服务器后应该怎么做。如何获取连接到mysql服务器的主机列表

代码片段确实有帮助。

什么是最好的API用于连接到MySQL使用C + +?你可以做到这一点

的一种方法是执行查询show processlist,这会给你IdUserHostdbCommandTimeStateInfo列的表。请记住,您的show processlist查询将成为输出的一部分。

+0

,“SHOW PROCESSLIST”查询WIL我是输出的一部分,你的意思是可以有更多的主机吗?在你的意思是它只会让一部分主机连接? 运行“显示进程列表”并查询唯一的“主机”是否会这样做? – AMM 2010-07-07 07:08:20

+0

是的,可以有任何主机,具体取决于您在运行查询时连接到MySQL实例的不同客户端计算机的数量。查询将返回_all_进程,包括你的(这是我的观点)。 'Host'字段显示连接到进程的客户端的主机名,所以如果你查询一个唯一的主机,你将只得到该主机的结果,是的。 – 2010-07-07 07:22:01

您可以尝试此查询:select distinct host from information_schema.processlist; 例如,从10.9.0.10和一个本地连接有多个连接。

mysql> select distinct host from information_schema.processlist; +-----------------+ | host | +-----------------+ | 10.9.0.10:63668 | | 10.9.0.10:63670 | | 10.9.0.10:63664 | | 10.9.0.10:63663 | | 10.9.0.10:63666 | | 10.9.0.10:63672 | | 10.9.0.10:63665 | | 10.9.0.10:63671 | | 10.9.0.10:63669 | | 10.9.0.10:63667 | | localhost | | | +-----------------+ 12 rows in set (0,00 sec) 如果你只想主机(不不同的连接),你可以尝试这样的事:select distinct substring_index(host,':',1) from information_schema.processlist; 例子: mysql> select distinct substring_index(host,':',1) from information_schema.processlist; +-----------------------------+ | substring_index(host,':',1) | +-----------------------------+ | 10.9.0.10 | | localhost | | | +-----------------------------+ 3 rows in set (0,00 sec) 你可以看到,MySQL的显示我一个空行,这是正常的(我有一个守护程序进程): mysql> select distinct substring_index(host,':',1),`command` from information_schema.processlist; +-----------------------------+---------+ | substring_index(host,':',1) | command | +-----------------------------+---------+ | 10.9.0.10 | Sleep | | localhost | Query | | | Daemon | +-----------------------------+---------+ 您可以where `command`!="Daemon"where `host`!='' 删除它,这里是查询很好的链接也算从主机和显示哪些用户连接连接:http://blog.shlomoid.com/2011/08/how-to-easily-see-whos-connected-to.html当你说