MySQL是否具有内置函数来获取主机名?
与
相似select user(); //this returns user@userip
编辑:
select current_user(); //returns user@10.0.3.%
最后一个符号是%
- 为什么?
答案 0 :(得分:7)
SELECT @@ hostname;
- mysql 4.1没有这个。
答案 1 :(得分:3)
不会他的工作?
选择substring_index(user(),'@', - 1)作为主机名;
以上是错误的,它返回用户的IP而非主机。我被本地测试所欺骗。对不起。
我想这会返回主机名,但除非您准备好grep
,pipe
和cut
只是一个FYI,否则这没有用:
C:\>mysqladmin -u username -pmypassword -h dev.naishelabs.com version
mysqladmin Ver 8.41 Distrib 5.0.22, for Win32 on ia32
Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license
Server version 5.0.77
Protocol version 10
Connection dev.naishelabs.com via TCP/IP
TCP port 3306
Uptime: 73 days 5 hours 7 min 45 sec
答案 2 :(得分:3)
select current_user(); returns user@10.0.3.% last simbol is % why ??
%
是mysql.user中与当前登录名匹配的记录
可以从
派生select concat(user, '@', host) from mysql.user;
%
由主机值决定。
答案 3 :(得分:3)
如果您想要数据库服务器的主机名,可以使用SHOW VARIABLES:
mysql> SHOW VARIABLES LIKE 'hostname';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| hostname | munda |
+---------------+-------+
1 row in set (0.00 sec)
它不是内置函数,因此不能在SELECT语句中使用。
答案 4 :(得分:2)
您是否正在寻找CURRENT_USER功能。
返回用户名和主机名 组合为MySQL帐户 用于验证的服务器 现任客户。此帐户 确定您的访问权限。
CURRENT_USER()的值可能不同 来自USER()的值。
答案 5 :(得分:2)
您可以使用user()
和current_user()
功能。如果您只想要主机名,请执行select substr(current_user(),LOCATE('@', current_user())+1) AS localhost;
之类的操作
您可以找到详细信息here
答案 6 :(得分:1)
@@hostname
变量包含系统主机名:
$ cat /etc/hostname
bruno
$ hostname
bruno
$ mysql
mysql> SELECT @@hostname;
+------------+
| @@hostname |
+------------+
| bruno |
+------------+
请注意,这可以合并并在其他查询中使用:
mysql> SELECT name, @@hostname FROM people;
+-------+-------------+
| name | @@hostname |
+-------+-------------+
| Dotan | bruno |
+-------+-------------+
mysql> SELECT CONCAT('I am on server ', @@hostname);
+---------------------------------------+
| CONCAT('I am on server ', @@hostname) |
+---------------------------------------+
| I am on server bruno |
+---------------------------------------+