这应该非常简单,但我不能让它为我的生活工作。
我只是想远程连接到我的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”的条目与主机为“%”的用户“root”的条目完全相同。
我束手无策,不知道该怎么办。欢迎提出任何意见。
26条答案
按热度按时间ohtdti5x1#
如果这是最近安装的mysql,那么在更改任何其他内容之前,请尝试执行此命令,然后重试:
仅此一项就解决了我在ubuntu16.04、mysql 5.7.20上的问题。基督教青年会。
uplii1fm2#
信息
*Host ''.xx..'' is not allowed to connect to this MySQL server
是mysql服务器对mysql客户端的回复。注意它是如何返回ip地址而不是主机名的。如果你想和
mysql -h<hostname> -u<somebody> -p
并且它返回这个带有ip地址的消息,那么mysql服务器就不能在客户机上进行反向查找。这一点很关键,因为这就是mysql客户机Map到授权的方式。确保你能做一个
nslookup <mysqlclient>
从mysql服务器。如果这不起作用,那么dns服务器中就没有条目。或者,您可以在mysql服务器的hosts文件中输入一个条目(<ipaddress> <fullyqualifiedhostname> <hostname>
<-这里的顺序可能很重要)。我的服务器的主机文件中的一个条目允许反向查找mysql客户机,解决了这个问题。
avkwfej43#
这里的大多数答案都显示了创建具有两个主机值的用户:一个用于
localhost
,和一个%
.请注意,除了像root这样的内置localhost用户之外,您不需要这样做。如果您只想创建一个可以从任何地方登录的新用户,您可以使用
它会很好的工作(正如其他人所提到的,将管理权限授予任何域的用户是一个糟糕的想法。)
xu3bshqb4#
你可以打开mysql.cfg文件,把绑定地址改成这个
绑定地址=127.0.0.1
然后重新启动mysql,您就可以将该服务器连接到此服务器。
看这个,你可以从那个想法。
这是真正的Solr
afdcj2ne5#
这个答案可能会帮助某人。。。
所有这些答案都没用,然后我意识到我忘了检查一个关键的东西。。端口:)
我有mysql运行在一个docker容器中运行在另一个端口上。我指着3306端口上的主机,上面运行着一个mysql服务器。我的容器暴露端口33060上的服务器。所以一直以来,我看错了服务器!哦!
zaqlnxep6#
只需使用mysql的gui工具(sqlyog)提供的接口:
单击用户管理器:
现在,如果您想为任何其他远程pc授予访问权限,只需确保,就像下面的图片一样,主机字段值是%(这是通配符)
hgtggwj07#
我也面临着同样的问题,它解决了我在2分钟我只是白名单ip通过cpanel
假设您正试图从服务器a连接服务器b的数据库。进入serverbcpanel->remotemysql->输入服务器的ip地址,就这样。
hrysbysz8#
如果您有wamp server+windows10并且正在使用它进行开发,那么右键单击wamp icon=>
Wamp Settings
=>Check Allow Virtual Hosts other than 127*
1wnzp6jl9#
如果手动修改授权表(使用insert、update等),则应执行
FLUSH PRIVILEGES
语句来通知服务器重新加载授予表。ps:我不建议允许任何主机为任何用户连接(特别是不允许
root
使用)。如果您将mysql用于客户机/服务器应用程序,请选择子网地址。如果将mysql与web服务器或应用程序服务器一起使用,请使用特定的IP。baubqpgj10#
只要从你的主机控制面板找到一个更好的方法(我在这里使用directadmin)
只需在您的控制面板中转到目标服务器数据库,在我的例子中:mysql管理->选择您的数据库->您将发现:“访问主机”,只需在这里添加您的远程主机和它的工作现在!
我想在其他c面板上也有类似的选择,比如plesk等等。。
我希望这对你也有帮助。
lsmepo6l11#
嗯,上面的答案对我来说都不管用。经过大量研究,我找到了解决办法。虽然我可能会迟到,但这可能会在将来帮助别人。
从终端登录到sql server
这应该可以解决权限问题。
快乐编码!!
wf82jlnq12#
简单的方法是使用根帐户登录phpmyadmin,然后转到mysql数据库并选择用户表,然后编辑根帐户并在主机字段中添加%wildcard。然后通过ssh刷新权限
6mzjoqzu13#
我的错误消息是类似的,并说'主机不允许连接到这个mysql服务器',即使我使用的是根。下面是如何确保root拥有正确的权限。
我的设置:
ubuntu 14.04 lts版
mysql版本5.5.37
解决方案
打开“etc/mysql/my.cnf”下的文件
检查:
端口(默认情况下为“port=3306”)
绑定地址(默认情况下为‘bind address=127.0.0.1’;如果你想向所有人开放,那么就把这行注解掉。在我的例子中,我会说实际的服务器在10.1.1.7)
现在访问实际服务器上的mysql数据库(假设您的远程地址是123.123.123.123,端口3306处的用户'root',我想更改对数据库'dataentry'的权限)。记住将ip地址、端口和数据库名称更改为您的设置)
sudo服务mysqld重启
现在应该可以远程连接到数据库了。例如,我使用mysql workbenchhostname:10.1.1.7', 'port:3306', 'username:root'
u0njafvf14#
为directadmin工作;
去你的房间
DirectAdmin
.去你的房间
MySQL Management
.选择您的
database
.在你的
Accesse Host
tab,有一个字段。你应该用.xx..xx
.点击
Add Host
.完成了。现在您可以通过
your_database_username
&your_database_password
.太简单了!
sc4hvdpw15#
这里的所有答案在我的情况下都不起作用,所以我认为这可能会在将来帮助其他用户。这在我们的代码中也是一个问题,不仅仅是