Show Database
Use database
show tables
Describe <table>
一切都很好,但是可以显示当前的连接主机。 不是connection_id,而是主机的IP地址或名称。
答案 0 :(得分:177)
获取当前主机名: -
select @@hostname;
show variables where Variable_name like '%host%';
获取所有传入请求的主机: -
select host from information_schema.processlist;
根据您的上次评论,
我不认为你可以使用纯mysql函数解析主机名的IP,
因为它需要网络查找,这可能需要很长时间。
然而,mysql文档提到了这一点: -
resolveip google.com.sg
docs: - http://dev.mysql.com/doc/refman/5.0/en/resolveip.html
答案 1 :(得分:16)
也许
mysql> show processlist;
答案 2 :(得分:6)
我认为您尝试获取连接用户的远程主机...
您可以获得类似于&#39; myuser @ localhost&#39;的字符串。来自命令:
SELECT USER()
您可以将此结果拆分为&#39; @&#39;签收,得到零件:
-- 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地址连接,您将获得ipadress而不是主机名。
答案 3 :(得分:1)
show variables where Variable_name='hostname';
这可以帮到你!!
答案 4 :(得分:0)
这也可以通过一个命令来实现。我在 MySQL 中尝试了这些查询
获取主机名:
mysql> SHOW GLOBAL VARIABLES LIKE 'HOSTNAME';
获取端口:
mysql> SHOW GLOBAL VARIABLES LIKE 'PORT';