解决1130 Host 'localhost' is not allowed to connect to this MySQL server

 

刚才更改了mysql的root用户密码后就报了【1130 Host 'localhost' is not allowed to connect to this MySQL server】错。html

缘由:mysql

1.报这个错是没给改后的root用户受权,因此没有权限登陆。sql

2.但我以为也多是由于我更改后的密码直接是明文而不像mysql用语句或安装时建立是密文方式的,因此登陆的时候没法获取到链接数据库

解决:this

【方案一】跳过受权来登陆,而后删除root用户,而后再spa

1.先把本地mysql服务关闭掉,而后经过在mysql安装目录下打开cmd运行如下跳过受权命令server

mysql>mysqld --skip-grant-tableshtm

执行过程须要一些时间,直到出现以上信息则表示mysql启动成功。注:不要关掉这个窗口,关闭的话mysql服务则会被关闭掉blog

2.再执行命令进行登陆ip

mysql>mysql -uroot -p密码

3.删除user表中的root用户,并建立与受权。

 

mysql>use mysql;

mysql>delete from user where user='root';

mysql> CREATE USER 'root'@'localhost' IDENTIFIED BY 'root';

4.在这个过程当中可能会出现如下错误

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot exe

1290错误须要执行将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里的命令

mysql>flush privileges;

ERROR 1396 (HY000): Operation CREATE USER failed for 'root'@'localhost'

1396错误的缘由是因为以前帐号信息清理不干净。须要drop本地root信息

mysql>drop user 'root'@'localhost';

5.受权

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;

mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'root';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

mysql>flush privileges;

相关文章
相关标签/搜索