初期学习阶段,自己搞的数据库但在创建远程连接用户时不小心把root用户的host改为了%,本地再新建连接时就出现1045的错误,尝试的找了很多方法都没有效果,把这些方法整合了一下居然成功了。(不知道是因为修改成%导致root用户有没有访问mysql权限了还是什么原因)
解决步骤:
1、打开终端cmd,输入命令: net stop mysql,停止MySQL服务 或者
右键 '此电脑'->'管理' ->'服务和应用程序.服务' -> 找到mysql点击停止 也可右键查看mysql属性。
2、开启跳过密码验证登录的MySQL服务,输入命令 mysqld --console --skip-grant-tables --shared-memory
3、再打开一个新的cmd,无密码登录MySQL,输入登录命令:mysql -u root -p 回车再回车
4、进入到mysql 输入 use mysql;
5、先刷新权限 后修改密码
FLUSH PRIVILEGES;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'xxxxxx';
6、现在,需要更新 user
表中的 Host
字段,将 root
用户的 Host
值从 %
改回 localhost
。
UPDATE user SET Host='localhost' WHERE User='root' AND Host='%';
7、再次刷新权限
FLUSH PRIVILEGES;
8、你可以通过查询 user
表来验证更改是否成功。
SELECT User, Host FROM user WHERE User='root';
你应该看到类似下面的输出,表示 root
用户的 Host
字段已被成功更改为 localhost
。
9、重启mysql服务, 尝试重连
注: 可以解决root密码忘记问题,也可解决root权限访问不了mysql问题。