我已经创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,你会有更好的连接性能。