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

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

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

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


当前回答

这个答案可能会帮助某人。。。

所有这些答案都无济于事,然后我意识到我忘了检查一件重要的事情。。端口:)

我让mysql在一个运行在不同端口上的docker容器中运行。我指向3306端口上的主机,我的主机上运行着一个mysql服务器。我的容器在33060端口上暴露服务器。所以一直以来,我都在看错误的服务器!嘘!

其他回答

消息“主机”“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客户端,解决了这个问题。

我也面临着同样的问题,它在2分钟内就解决了,我只是通过cpanel列出了白名单

假设您正在尝试从服务器A连接服务器B的数据库。转到服务器B Cpanel->远程MySQL->输入服务器A IP地址,就这样。

简单方法:

Grant All Privileges ON *.* to 'USER_NAME'@'%' Identified By 'YOUR_PASSWORD'; 

then

FLUSH PRIVILEGES;

完成!

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

绑定地址=127.0.0.1

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

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

这是真的溶胶

如果您有WAMP服务器+Windows 10,并且正在使用它进行开发,请右键单击WAMP图标=>WAMP设置=>选中允许虚拟主机而不是127*