微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

主机 'xxx.xx.xxx.xxx' 不允许连接到这个 MySQL 服务器

如何解决主机 'xxx.xx.xxx.xxx' 不允许连接到这个 MySQL 服务器

可能是一种安全预防措施。您可以尝试添加一个新的管理员帐户:

MysqL> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
MysqL> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
    ->     WITH GRANT OPTION;
MysqL> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
MysqL> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
    ->     WITH GRANT OPTION;

尽管正如 Pascal 和其他人所指出的,让具有这种访问权限的用户对任何 IP 开放并不是一个好主意。如果您需要管理用户,请使用 root,并将其保留在 localhost 上。对于任何其他操作,请准确指定您需要的权限并限制用户的可访问性,如下面的 Pascal 建议。

编辑:

来自 MysqL 常见问题解答:

如果您无法弄清楚为什么会被拒绝访问,请从用户表中删除所有主机值包含通配符的条目(包含“%”或“_”字符的条目)。一个非常常见的错误是使用 Host=’%’ 和 User=’some_user’ 插入一个新条目,认为这允许您指定 localhost 从同一台机器进行连接。这不起作用的原因是认权限包括 Host=’localhost’ 和 User=’‘ 的条目。因为该条目的主机值“localhost”比“%”更具体,所以在从 localhost 连接时优先使用它而不是新条目!正确的程序是插入第二个条目,其中 Host=’localhost’ 和 User=’some_user’,或删除 Host=’localhost’ 和 User=’‘ 的条目。删除条目后,请记住发出 FLUSH PRIVILEGES 语句以重新加载授权表。另请参见第 5.4.4 节,“访问控制,第 1 阶段:连接验证”。

解决方法

这应该很简单,但我 无法 让它为我的生活工作。
我只是想远程连接到我的 MySQL 服务器。

  • 连接方式:

    mysql -u root -h localhost -p
    
  • 工作正常,但尝试:

    mysql -u root -h 'any ip address here' -p
    
  • 失败并出现错误:

    ERROR 1130 (00000): Host ''xxx.xx.xxx.xxx'' is not allowed to connect to this MySQL server
    

mysql.user表中,主机为 ‘localhost’ 的用户 ‘root’ 的条目与主机为 ‘%’ 的另一个条目完全相同。

我束手无策,不知道如何进行。欢迎任何想法。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。