我需要一个用户能够从机器 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
,适用于Windows C:\Windows\System32\drivers\etc\hosts
)和添加的IP,并hostname
为客户端机器,在你的例子中
10.11.12.13 foobarhost
Run Code Online (Sandbox Code Playgroud)
然后保存并关闭(注意 Windows 需要重新启动才能生效),您可能需要添加以下参数--skip-name-resolve
和\或--skip-host-cache
.