MySQL拒绝访问合法的远程用户

我已经创build了一个用户并赋予该用户完全访问权限,但MySQL仍然拒绝访问该用户 – 为什么?

创build用户:

create user 'myUser'@'Mikes-MacBook-Air.local' identified by 'account_password' 

授予所有数据库权限:

 grant all privileges on *.* to 'myUser'@'Mikes-MacBook-Air.local' identified by 'account_password' with grant option 

已validation的授予

 show grants for 'myUser'@'Mikes-MacBook-Air.local' 

MySQL在IP 192.168.0.2的计算机上运行(已validation),客户端从IP 192.168.0.3的计算机连接。 我甚至用ip作为域创build了一个用户帐户:

创build用户:

 create user 'myUser'@'192.168.0.3' identified by 'account_password' 

授予所有数据库权限:

 grant all privileges on *.* to 'myUser'@'192.168.0.3' identified by 'account_password' with grant option 

已validation的授予

 show grants for 'myUser'@'192.168.0.3' 

我已经重新启动了两台机器,validation的IP地址没有改变,MySQL正在运行。 我可以从工作台访问这个MySQL服务器的W / O问题从同一个客户端机器 – 不同的凭据。 我也可以从另一个远程客户端机器访问这个MySQL实例,其中用户具有与其他计算机域相似的MySQL帐户。

毕竟,我仍然得到这个例外:

 Exception: Access denied for user 'myUser'@'Mikes-MacBook-Air.local' (using password: YES) 

为什么MySQL拒绝访问?

它试图使用用户名'Mikes-MacBook-Air.local'而不是'myUser'进行连接。 接收错误信息时,用于连接的确切命令是什么?

你的my.cnf中有skip-resolv吗? 如果是这样的话,MySQL将不会使用主机名来检查ACL。

通常,避免在MySQL ACL中使用主机名,并始终使用IP或networking。 然后在你的configuration中添加skip-resolv,你会有更好的连接性能。