Show Database
Use database
show tables
Describe <table>
一切都很好,但是是否可以显示当前的连接主机。 不是connection_id,而是主机的IP 地址或名称。
获取当前主机名:-
select @@hostname;
show variables like "%host%";
获取所有传入请求的主机:-
select host from information_schema.processlist;
根据您最后的评论,
我不认为你可以使用纯 mysql 函数解析主机名的 IP,
因为它需要网络查找,这可能需要很长时间。
但是,mysql文档提到了这一点:-
resolveip google.com.sg
也许
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 地址而不是主机名。
show variables where Variable_name='hostname';
这可以帮助你!
好吧,我在 MySQL 上进行了启动,并且一切都开始按预期工作...连接到 MySQL 的应用程序服务器,全部位于不同的服务器,Ubuntu Linux 中。
$ mysql -u sysprod -p -h dbprod --protocol=TCP
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 8.0.30-0ubuntu0.22.04.1 (Ubuntu)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
mysql>
mysql> select user();
+----------------------------+
| user() |
+----------------------------+
| sysprod@dbprod |
+----------------------------+
1 row in set (0.00 sec)