刚才更改了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;