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

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

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

创建用户:

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

已验证的授权:

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

MySQL 在 IP 为 192.168.0.2 的机器上运行(已验证),客户端从 IP 为 192.168.0.3 的机器连接。我甚至创建了一个以 IP 为域的用户帐户:

创建用户:

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

已验证的授权:

show grants for 'myUser'@'192.168.0.3'

我已重启两台机器,并确认 IP 地址没有改变,MySQL 正在运行。我可以从同一台客户端机器(尽管凭据不同)毫无问题地从 Workbench 访问此 MySQL 服务器。我还可以从另一台远程客户端机器访问此 MySQL 实例,其中用户在其他计算机域中拥有类似的 MySQL 帐户。

经过这一切,我仍然收到异常:

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

为什么 MySQL 拒绝访问?

答案1

它尝试使用用户名“Mikes-MacBook-Air.local”而不是“myUser”进行连接。当您收到错误消息时,您用于连接的确切命令是什么?

答案2

您的 my.cnf 中是否有 skip-resolv ?如果是,MySQL 将不会使用主机名检查 ACL。

一般情况下,避免在 MySQL ACL 中使用主机名,始终使用 IP 或网络。然后在配置中添加 skip-resolv,您将获得更好的连接性能。

相关内容