主机'xxx.xx.xxx'不允许连接到这个MySQL服务器。
这应该是非常简单的,但我却无法**它的工作。
我只是想远程连接到我的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'条目完全相同。
我一筹莫展,不知道该如何继续。 欢迎提出任何意见。
622
3
可能是一种安全预防措施。你可以尝试添加一个新的管理员账户。
尽管正如帕斯卡尔和其他人所指出的,让一个具有这种权限的用户对任何IP开放并不是一个好主意。如果你需要一个管理用户,请使用root,并把它留在localhost。对于任何其他的行动,都要准确地指定你所需要的权限,并限制用户的访问权限,就像Pascal在下面建议的那样。
编辑。
来自MySQL的FAQ。
消息 "*主机''xxx.xx.xxx''不允许连接到这个MySQL服务器 "是MySQL服务器对MySQL客户端的一个回复。注意它是如何返回IP地址而不是主机名的。
如果你试图用
mysql -h -u -p
连接,而它返回的信息是IP地址,那么MySQL服务器就无法对客户端进行反向查找。这很关键,因为它是如何将MySQL客户端映射到补助金的。确保你能从MySQL服务器上做一个 "nslookup "。如果这不起作用,那么DNS服务器中就没有条目。或者,你可以在MySQL服务器的HOSTS文件中加入一个条目(` `
如果你手动修改授予表(使用INSERT,UPDATE,等等),你应该执行 语句来告诉服务器重新加载授予表。
PS:我不建议允许任何主机为用户连接(特别是不允许使用
root
)。如果你将mysql用于客户/服务器应用,最好使用子网地址。如果你在Web服务器或应用服务器上使用mysql,使用特定的IP。