通过SQL显示MySQL主机命令

问题描述:

Show Database 
Use database 
show tables 
Describe <table> 

一切都很好,但有没有可能显示当前连接主机。 不是connection_id,而是主机的IP地址或名称。通过SQL显示MySQL主机命令

要获取当前的主机名: -

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

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

select host from information_schema.processlist; 

根据您最后的评论,
我不认为你可以解决IP使用纯MySQL的功能,
因为它需要一个网络查找,这可能是需要长时间的主机名。

然而,MySQL的文件提到这一点: -

resolveip google.com.sg 

文档: - http://dev.mysql.com/doc/refman/5.0/en/resolveip.html

+0

我没有远程主机在ATM上测试,但“SELECT @@ hostname”给我的本地主机。如果MySQL会话连接到不同的主机,它会显示远程主机名?我可以获得IP吗? –

+0

是的,如果你来自其他主机,它会显示不同的主机。然而,解决相应的IP是有点难... – ajreal

+0

是否有可能从My-SQL获得IP?那太好了。为@@主机名投一票,谢谢!将接受IP如果不可能 –

也许

mysql> show processlist; 
+1

这是一个糟糕的建议,如果你想远程访问。 –

我想你试图让conneting用户的远程主机.. 。

你可以像在命令“为myuser @本地”的字符串:

SELECT USER() 

您可以在“@”符号分割这一结果,得到部分:

-- delivers the "remote_host" e.g. "localhost" 
SELECT SUBSTRING_INDEX(USER(), '@', -1) 

-- delivers the user-name e.g. "myuser" 
SELECT SUBSTRING_INDEX(USER(), '@', 1) 

,如果你是通过IP地址conneting你会得到ipadress而不是主机名。

show variables where Variable_name='hostname'; 

,可以帮助你!