时间:2021-07-01 10:21:17 帮助过:7人阅读
最近要使用MySQL Workbench远程管理工具进行远程管理虚拟机上的MySQL。可是,在配置的过程中,遇到了一些问题,下面是这个问题(HOSt ip is not allowed to connect to this MySql server)的描述以及解决办法。
本地系统:Window 7
虚拟机系统:CentOS 6.5
MySQL版本:mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1
MySQL Workbench版本:MySQL Workbench 6.2 CE
HOSt ip is not allowed to connect to this MySql server
对于这个问题,还是有纠结了一下的。因为我在为两台虚拟机添加远程控制的时候,发现第一台可以过,而第二台怎么都过不了。下面是我的处理过程:
上面的报错信息是因为我们的MySQL没有提供远程控制的服务。我们可以通过以下方法进行解决:
1.改表法:
可能是你的帐号不允许从远程登陆,只能在localhost。
这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
mysql> use mysql;
mysql> update user set host = '%' where user = 'root';
mysql> select host, user from user;
2.授权法:
例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允许用户loginName从ip为192.168.1.6的主机连接到mysql服务器,并使用Password作为密码
mysql> GRANT ALL PRIVILEGES ON *.* TO 'loginName'@'192.168.1.6'IDENTIFIED BY 'Password' WITH GRANT OPTION;
我使用的是上一句。
mysql>FLUSH RIVILEGES;
3.另外一种方法:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> EXIT;
本人没有进行第3种方法,因为前两种方法可以很好的解决问题。
不过对于改表法,我是没有执行到第三步的。因为第二步就报错了。好吧,那我就来尝试一下授权法。授权法是可以的。就这样我的第一台机器可以使用MySQL Workbench进行远程管理了。
可是当我开始对我的第二台机器进行操作时,很不幸,没能成功。原因是我以为改表法出现了Error就可以直接跳过了,直接进行授权法。可是,这是不行的。于是我改表法又操作了一遍,并且进行了第三步操作,我看到,实际上第二步是修改成功的。
就这样我的两台机器都可以通过MySQL Workbench进行远程管理了。