解决服务器链接错误Host ‘XXX’ is not allowed to connect to this MySQL server

解决服务器链接错误Host ‘XXX’ is not allowed to connect to this MySQL servermysql

在“配置登录信息和数据库(mysql)”链接中,出现“服务器链接错误Host 'XXX' is not allowed to connect to this MySQL server”的错误。sql

像这种错误,就是典型的远程权限问题。数据库

问题症结是MySQL 没有开放远程登陆的权限。这时要看你的服务器到底用的那种系统,Linux或者是Windows,这个解决办法不一样。解决的办法就是开启 MySQL 的远程登录账号。服务器

解决方案:ide

第一步:肯定服务器上的防火墙没有阻止 3306 端口。this

MySQL 默认的端口是 3306 ,须要肯定防火墙没有阻止 3306 端口,不然远程是没法经过 3306 端口链接到 MySQL 的。spa

若是您在安装 MySQL 时指定了其余端口,请在防火墙中开启您指定的 MySQL 使用的端口号。code

若是不知道怎样设置您的服务器上的防火墙,请向您的服务器管理员咨询。server

第二步:增长容许远程链接 MySQL 用户并受权。blog

(1).登录mysql

(2).建立远程登录用户并受权,在要连接的服务器上操做

mysql> grant all PRIVILEGES on db_name.* to 'username'@'xxx.xxx.xx.x' identified by 'password' WITH GRANT OPTION;

上面的语句表示将数据库 db_name 的全部权限受权给 username 这个用户,容许 username 用户在 xxx.xxx.xx.x 这个 IP 进行远程登录,并设置 username 用户的密码为 password。

参数分析:

    all PRIVILEGES 表示赋予全部的权限给指定用户,这里也能够替换为赋予某一具体的权限,例如:select,insert,update,delete,create,drop 等,具体权限间用“,”半角逗号分隔。

    db_name.* 表示上面的权限是针对于哪一个表的,db_name指的是数据库名称,后面的 * 表示对于全部的表,由此能够推理出:对于所有数据库的所有表受权为“*.*”,对于某一数据库的所有表受权为“数据库名.*”,对于某一数据库的某一表受权为“数据库名.表名”。

    username表示你要给哪一个用户受权,这个用户能够是存在的用户,也能够是不存在的用户。

    xxx.xxx.xx.x 表示容许远程链接的 IP 地址,你的IP,若是想不限制连接的 IP 则设置为“%”便可。

    password 为用户username的密码。

    最后执行了上面的语句后,通常都会当即生效,返回值以下:

    Query OK, 0 rows affected (0.01 sec)


   若是没有上面的语句那么请执行下面的命令,便可当即生效。

   Mysql> flush privileges

 上面(2)当中的受权语句,在Mysql的图形界面sql,能够写成这样:

你想root使用123456从任何主机链接到mysql服务器的话,代码以下:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

若是你想容许用户root从ip为192.168.1.3的主机链接到mysql服务器,并使用123456做为密码,代码以下:

GRANT ALL PRIVILEGES ON *.* TO ‘root’@’192.168.1.3′ IDENTIFIED BY123456WITH GRANT OPTION;

 上面(2)当中的受权还能够采用改表法:

多是你的账号不容许从远程登录,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"

mysql -u root -pvmwaremysql>use mysql;

mysql>update user set host = '%' where user = 'root';

mysql>select host, user from user;
相关文章
相关标签/搜索