mysql ERROR 1130 问题解决方案

本地出现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语句不一样)

INSERT INTO `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');

成功后,在my.ini删除skip-grant-tables,现在就可以使用在本地使用root账户密码登录了。

记住在安装了mysql的数据库中,不要非法关机,强制断电,不然会出现这样的问题。

本地出现了Error 1130,那远程连接也一定会出现该问题,解决了本地连接问题,却不一定解决远程连接出现Error 1130问题。

远程连接出现Error 1130问题

解决该问题有以下两个方法

1、改表法

可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在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

2、授权法

例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

补充:重新安装mysql数据库不成功解决方法

有时候必须重新安装mysql数据库,但是总是安装不成功,这是因为被以前安装mysql文件影响了。可通过以下两步彻底删除mysql遗留文件

1、通过查找注册表 regedit,全文搜索MySQL并删除。

2、删除MySQL的数据,一般在C:\ProgramData下MySQL目录,(建议删除前对该文件夹进行备份,以便后续数据还原用)。

你可能感兴趣的:(sql)