MySQL不能解析IP地址,但是nslookup可以解析

时间:2018-07-06 18:54:30

标签: mysql linux dns mysql-workbench nslookup

在工作中,我的团队在Linux 14.04机器上拥有一个MySQL数据库。我的团队正在努力更改使用主机名而不是IP的权限(以便IT团队可以对网络进行他们想要的操作,而不必担心破坏我们的访问权限。)

例如,将有一个用户admin@10.10.xxx.xxx,我们想要更改为admin@my-ws.co.local。我一直在和我的用户玩耍(因为我已经具有root身份并且仍然可以登录)。将用户配置文件的主机从IP地址更改为主机名后,Workbench将给出错误信息...

HOST '10.10.xxx.xxx' is not allowed to connect to this MySQL server

当我登录到Linux机器并使用nslookup my-ws.co.local时,响应将为我提供正确的IP地址,因此我知道机器与网络之间没有连接问题。而且由于响应是正确的,因此我假设内部DNS正常工作。

检查performance_schema.host_cache表,可以看到IP 10.10.xxx.xxx未解析为主机(HOST列为NULL,而HOST_VALIDATED列为YES

nslookup正常工作的情况下,为什么MySQL无法将IP地址解析为正确的主机名??MySQL中是否有一些我需要修复的设置?我团队中每个工作站的内部DNS中是否都需要记录?

2 个答案:

答案 0 :(得分:0)

有正向查找,例如解析A记录,还有反向查找,其中涉及查找PTR记录。它们通常在公共网络上配对在一起,但是请记住,一个或更多 A记录可以指向同一IP,但是应该只有一个反向PTR记录。此外,虽然PTR记录应该是可解析的地址,但事实并非如此,反向条目可能无效或解析为完全不同的地址。

除非您有一个10.10.in-addr.arpa的解析器(通常情况并非如此,因为这是保留的地址空间),否则您无法将IP反向查找回主机名。

使用nslookup,您可以测试反向映射:

nslookup 10.10.1.1

该地址就是您要撤消的地址。

答案 1 :(得分:0)

它也发生在我身上。

原因是在 my.cnf 配置中开启了 skip_name_resolve。禁用反向DNS查询形式的IP地址,只使用IP地址记录时间。

如果 nslookup 有效,则表示反向 DNS 查询有效。

特别是,如果 'resolveip' 命令有效,则意味着 MySQL 服务器能够将 IP 地址解析为主机名。因为resolveip是MySQL Server自带的命令,MySQL使用相同的方式解析IP和主机名。