本地出现Error 1130问题解决方案
当连接mysql数据库的时候,出现ERROR 1130 (HY000): Host ‘xxxx’ is not allowed to connect to this MySQL server的问题。本地localhost也不行,重新安装mysql数据库又怕原来的数据库无法还原。
出现这种问题可能是非法关机、删除root用户等导致的,mysql数据库user表中没有root用户,如果localhost也无法登陆,则需要在my.ini最后加上skip-grant-tables,这样就不需要密码登录,登陆后通过以下sql语句创建root用户(我用的是5.1版本,不同版本可能sql语句不一样)
INSERTINTO`user`VALUES('localhost','root','your password','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','','0','0','0','0');
1
成功后,在my.ini删除skip-grant-tables,现在就可以使用在本地使用root账户密码登录了。
记住在安装了mysql的数据库中,不要非法关机,强制断电,不然会出现这样的问题。
本地出现了Error 1130,那远程连接也一定会出现该问题,解决了本地连接问题,却不一定解决远程连接出现Error 1130问题。
解决该问题有以下两个方法
1、改表法
可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称”%”
mysql-uroot-pvmwaremysql>use mysql;mysql>update usersethost='%'whereuser='root';mysql>flush privileges;mysql>selecthost, user from user
1
2
3
4
5
2、授权法
例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANTALLPRIVILEGESON*.*TO'myuser'@'%'IDENTIFIEDBY'mypassword'WITHGRANTOPTION;
1
如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码
GRANTALLPRIVILEGESON*.*TO'myuser'@'192.168.1.3'IDENTIFIEDBY'mypassword'WITHGRANTOPTION;
1
有时候必须重新安装mysql数据库,但是总是安装不成功,这是因为被以前安装mysql文件影响了。可通过以下两步彻底删除mysql遗留文件
1、通过查找注册表 regedit,全文搜索MySQL并删除。
2、删除MySQL的数据,一般在C:\ProgramData下MySQL目录,(建议删除前对该文件夹进行备份,以便后续数据还原用)。