#MySQL修改root密码无法登陆(1130错误)解决办法
##原因分析
修改密码的两种错误方式:
UPDATE USER SET PASSWORD = '新密码' WHERE USER = '用户名';
UPDATE USER SET PASSWORD = 'abc' WHERE USER = 'root';
SET PASSWORD FOR '用户名'@'主机名' = '新密码';
SET PASSWORD FOR 'root'@'localhost' = 'abc';
这两种方式可以修改,不过新密码(这可能不是密码,只是一个字符串)不会底层加密(你可以试试通过免密登录MySQL,查看密码,就会看到并没有进行加密),以致无法登陆。
##解决方案
1. cmd -- > net stop mysql -- 停止mysql服务,需要管理员运行该cmd
2. 使用无验证方式启动mysql服务: mysqld --skip-grant-tables
3. 打开新的cmd窗口,直接输入mysql命令,敲回车。就可以登录成功
4. use mysql;
5. 修改密码(两种方式,注意看这两个方法和错误示例方法的区别):
UPDATE USER SET PASSWORD = PASSWORD('新密码') WHERE USER = '用户名';
UPDATE USER SET PASSWORD = PASSWORD('abc') WHERE USER = 'root';
SET PASSWORD FOR '用户名'@'主机名' = PASSWORD('新密码');
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('abc');
6. 关闭两个窗口
7. 打开任务管理器,手动结束 mysqld.exe 进程
8. 启动mysql服务
9. 使用新密码登录