MySQL 1130错误原因及解决方案


相信大家在使用MySQL数据库的过程中肯定都遇到过报错,其中MySQl 1130就是一个我们在远程登陆是经常遇到的错误。

本文树懒君就给大家介绍一下MySQL 1130报错的原因以及解决的思路,并给大家三种具体的解决方案供大家参考。

错误概述:

错误:ERROR 1130: Host ‘xxx.xxx.xxx.xxx’ is not allowed to connect to thisMySQL serve

错误1130:主机xxx.xxx.xxx.xxx”不允许连接到thismysql服务

原因分析

被连接的数据不允许使用主机xxx.xxx.xxx.xxx访问,系统数据库mysql中user表中的host是localhost,只允许是用 localhost (127.0.0.1)连接;

解决方法:

解决该问题有以下三个方法:

1:简单法

首先使用localhost连接上mysql,然后使用如下两条命令(IP地址为你要远程连接数据库的本地机器的IP地址):

use mysql;
update user set host='xxx.xxx.xxx.xxx';

之后退出mysql,然后我们重新启动mysql,此实我们设置了IP地址的本地机器就可以连接数据库了。

2: 改表法。

可能是我们的的帐号不允许从远程登陆,只能在localhost(127.0.0.1)登录。这个时候只要在localhost的那台电脑,登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称”%”,具体命令如下:

mysql -u root -pvmware
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>flush privileges;
mysql>select host, user from user 

3:授权法

例如,如果我们想允许用户mysqluser使用mysqlpassword作为密码从ip为192.168.47.1的主机连接到mysql服务器,就需要进行如下操作:

GRANT ALL PRIVILEGES ON *.* TO 'mysqluser'@'192.168.47.1' IDENTIFIED BY 'mysqlpassword' WITH GRANT OPTION;

如果我们想使用mysqluser账户和其对应的密码 mysqlpassword从任何主机连接到mysql服务器,就需要进行如下操作:

GRANT ALL PRIVILEGES ON *.* TO 'mysqluser‘@'%' IDENTIFIED BY 'mysqlpassword' WITH GRANT OPTION;

评论区(0)

评论