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

连接方式:mysql-u根-h本地主机-p工作正常,但尝试:mysql-uroot-h'这里的任何ip地址'-p失败,错误为:错误1130(00000):主机“xxx.xx.xxx.xxx”不允许连接到此MySQL服务器

在mysql.user表中,主机为“localhost”的用户“root”的条目与主机为“%”的用户完全相同。

我束手无策,不知道该怎么办。欢迎提出任何想法。


当前回答

那么,您可以做的就是打开mysql.cfg文件,然后将Bind地址更改为

绑定地址=127.0.0.1

然后重新启动mysql,您将能够将该服务器连接到此服务器。

看这个,你可以从那个里得到想法。

这是真的溶胶

其他回答

消息“主机”“xxx.xx.xxx.xxx”“不允许连接到此MySQL服务器”是MySQL服务器对MySQL客户端的答复。注意它如何返回IP地址而不是主机名。

如果您试图连接mysql-h<hostname>-u<someone>-p,并且它返回带有IP地址的消息,则mysql服务器无法在客户端上执行反向查找。这很关键,因为这就是它将MySQL客户端映射到授权的方式。

确保可以从MySQL服务器执行nslookup<mysqlclient>。如果这不起作用,那么DNS服务器中就没有条目。或者,您可以在MySQL服务器的HOSTS文件中输入一个条目(<ipaddress><fullyqualifiedhostname><hostname><-这里的顺序可能很重要)。

我的服务器主机文件中的一个条目允许反向查找MySQL客户端,解决了这个问题。

如果手动修改授权表(使用INSERT、UPDATE等),则应执行FLUSH PRIVILEGES语句,告诉服务器重新加载授权表。

PS:我不建议允许任何主机连接任何用户(尤其是非root用户)。如果您将mysql用于客户机/服务器应用程序,请首选子网地址。如果您在web服务器或应用程序服务器上使用mysql,请使用特定的IP。

如果您恰好在Windows上运行;一个简单的解决方案是运行MySQL服务器实例配置向导。它位于开始菜单中的MYSQL组中。在倒数第二个屏幕上,单击“允许远程计算机的root访问”框。

简单的方法是使用root帐户登录phpmyadmin,然后转到mysql数据库并选择用户表,然后编辑root帐户并在host字段中添加%wildcard。然后通过ssh刷新权限

 FLUSH PRIVILEGES;

您需要从任何主机名授予用户访问权限。

这是如何从phpmyadmin添加新权限的

转到权限>添加新用户

为所需用户名选择任意主机