【问题标题】:Show MySQL host via SQL Command通过 SQL 命令显示 MySQL 主机
【发布时间】:2011-11-27 02:39:41
【问题描述】:
Show Database
Use database
show tables
Describe <table>

一切都很好,但是是否可以显示当前连接主机。 不是 connection_id,而是主机的 IP 地址或名称。

【问题讨论】:

    标签: mysql sql database


    【解决方案1】:

    获取当前主机名:-

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

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

    select host from information_schema.processlist;
    

    根据您上次的评论,
    我认为您无法使用纯 mysql 函数解析主机名的 IP,
    因为它需要网络查找,这可能需要很长时间。

    但是,mysql 文档中提到了这一点:-

    resolveip google.com.sg
    

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

    【讨论】:

    • 我没有要在 ATM 上测试的远程主机,但“SELECT @@hostname”提供了我的本地主机。如果 MySQL 会话连接到不同的主机,它会显示远程主机名吗?能拿到IP吗?
    • 是的,如果您来自其他主机,它将显示不同的主机。但是,要解析对应的IP有点难……
    • 是否可以从 My-SQL 获取 IP?那很好啊。为@@Hostname 投一票,谢谢!!如果在 IP 上不可能,将接受
    • 使用命令行,在 SQL 中获取当前连接的远程主机 IP。原因,脚本的寿命我不能在我的代码中 100% 确定我们连接到同一个主机!
    • 马来西亚人,但新加坡公关。
    【解决方案2】:
    show variables where Variable_name='hostname'; 
    

    这对你有帮助!!

    【讨论】:

    • 有趣的我没有回报。
    • 这会根据请求返回服务器主机名,而不是连接的客户端主机名...
    • @HartmutHolzgraefe ...在问题中,仅询问主机名,而不是客户端..
    【解决方案3】:

    也许

    mysql> show processlist;
    

    【讨论】:

    • 如果您尝试远程访问,这是一个不好的建议。
    【解决方案4】:

    我认为您尝试获取连接用户的远程主机...

    您可以从命令中获取类似“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 地址而不是主机名。

    【讨论】:

      【解决方案5】:

      这也可以通过一个命令来实现。我在 MySQL 中尝试了这些查询

      获取主机名:

      mysql> SHOW GLOBAL VARIABLES LIKE 'HOSTNAME';
      

      获取端口:

      mysql> SHOW GLOBAL VARIABLES LIKE 'PORT';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-27
        • 2017-09-08
        • 1970-01-01
        • 2020-05-24
        相关资源
        最近更新 更多