通过SQL命令显示MySQL主机

Show Database Use database show tables Describe <table> 

一切顺利,但可以显示当前的连接主机。 不是connection_id,而是主机的IP地址或名称。

获取当前主机名称: –

 select @@hostname; show variables where Variable_name like '%host%'; 

获取所有传入请求的主机:

 select host from information_schema.processlist; 

根据你最后的评论,
我不认为你可以使用纯粹的mysql函数parsing主机名的IP,
因为它需要networking查询,可能需要很长时间。

不过,mysql文件提到这个:

 resolveip google.com.sg 

docs: – http://dev.mysql.com/doc/refman/5.0/en/resolveip.html

也许

 mysql> show processlist; 

我想你试图得到连接用户的远程主机…

你可以从命令中得到一个像“myuser @ localhost”这样的string:

 SELECT USER() 

你可以在'@'符号上分割这个结果,得到这些部分:

 -- delivers the "remote_host" eg "localhost" SELECT SUBSTRING_INDEX(USER(), '@', -1) -- delivers the user-name eg "myuser" SELECT SUBSTRING_INDEX(USER(), '@', 1) 

如果您通过IP地址连接,您将获得ipadress而不是主机名。

 show variables where Variable_name='hostname'; 

这可以帮助你!