【发布时间】:2011-11-27 02:39:41
【问题描述】:
Show Database
Use database
show tables
Describe <table>
一切都很好,但是是否可以显示当前连接主机。 不是 connection_id,而是主机的 IP 地址或名称。
【问题讨论】:
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 函数解析主机名的 IP,
因为它需要网络查找,这可能需要很长时间。
但是,mysql 文档中提到了这一点:-
resolveip google.com.sg
【讨论】:
show variables where Variable_name='hostname';
这对你有帮助!!
【讨论】:
也许
mysql> show processlist;
【讨论】:
我认为您尝试获取连接用户的远程主机...
您可以从命令中获取类似“myuser@localhost”的字符串:
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 地址连接,您将获得 IP 地址而不是主机名。
【讨论】:
这也可以通过一个命令来实现。我在 MySQL 中尝试了这些查询
获取主机名:
mysql> SHOW GLOBAL VARIABLES LIKE 'HOSTNAME';
获取端口:
mysql> SHOW GLOBAL VARIABLES LIKE 'PORT';
【讨论】: