我需要一个用户能够从机器 foobarhost,IP 10.11.12.13 登录我们的 MySQL 服务器 5.6。
因此我创建了一个用户'joe'@'foobarhost'
,但他无法登录。我必须创建一个用户'joe'@'10.11.12.13'
,这次工作正常。
我的问题:MySQL 如何处理有关用户的主机名和 IP 地址?
MySQL在检查匹配之前对用户表进行排序,使用 IP 地址和主机名作为要匹配的最具体的值。但是,文档没有指定优先级 - 主机名或 IP。MySQL 是否尝试解析主机名,如果失败,是否对 IP 执行检查?
用户表的推荐用法是什么:仅指定 IP 地址、主机名或两者都指定(如我在上面的示例中所做的那样)?
我之前遇到过这个问题,经过长时间的调查,我发现有时MySQL无法解决
DNS
默认情况下的任何问题,所以我做了以下操作:编辑hosts文件(可以在Linux下找到/etc/hosts
,适用于WindowsC:\Windows\System32\drivers\etc\hosts
)并添加iphostname
和客户端机器,在你的例子中然后保存并关闭(注意 Windows 需要重新启动才能生效),您可能需要添加以下参数
--skip-name-resolve
和\或--skip-host-cache
.