相信大家在使用MySQL数据库的过程中肯定都遇到过报错,其中MySQl 1130就是一个我们在远程登陆是经常遇到的错误。
本文树懒君就给大家介绍一下MySQL 1130报错的原因以及解决的思路,并给大家三种具体的解决方案供大家参考。
错误概述:
错误:ERROR 1130: Host ‘http://xxx.xxx.xxx.xxx’ is not allowed to connect to thisMySQL serve
错误1130:主机xxx.xxx.xxx.xxx”不允许连接到thismysql服务
原因分析
被连接的数据不允许使用主机http://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;
版权归原作者 透明的玻璃杯 所有, 如有侵权,请联系我们删除。