概述:

  最近要使用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进行远程管理了。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐