通过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';
这可以帮助你!