在登录数据库过程中,如果遇到忘记root密码时,该如何解决?
一、root密码无法登录
-
使用管理员权限打开命令提示符,在命令行中输入:
net stop mysql,停止mysql服务。 -
待mysql服务停止后,输入:
mysqld --shared-memory --skip-grant-tables,此时命令提示符窗口处于锁定状态,重新以管理员权限打开新的命令提示符窗口。 -
在新的命令提示符窗口输入:
mysql -uroot -p后回车,提示输入密码时直接按回车进入。 -
输入:
use mysql; -
输入:
update user set authentication_string='' where user='root';,将authentication_string置空。
注:在mysql8.0以上版本
update mysql.user set password='newpassword' where user='root';
和
update mysql.user set password=PASSWORD('newpassword') where User='root';
这两条命令已经不起作用了。
-
输入:
alter user 'root'@'localhost' identified by 'newpassword';newpassword是要设的新密码。 -
如果提示设置成功,则输入:
flush privileges;。完成后Ctrl+Z退出mysql,使用新密码重新登录即可。 -
如果提示不成功,则关闭两个命令提示符,重新打开一个管理员权限的命令提示符窗口,输入: mysql -uroot -p 后回车,输入密码时直接按回车进入(因为此时密码已被置空)。
-
重复步骤4,步骤6,步骤7。
二、Navicat远程连接数据库失败
- 如果使用Navicat等可视化界面连接数据库时连接不成功的情况,如错误信息:2059。
此时需要更改验证方式,使用命令提示符登录数据库,输入:
SELECT Host, User, plugin from user;
查看验证类型 ,可以看到root用户的验证类型是caching_sha2_password:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
#yourpassword 是想要设置的密码。
- 提示成功后,
flush privileges;,再次打开Navicat连接即可。
以上为mysql 8.0版本以上,忘记root密码或使用root密码登录不成功的解决办法!
原文链接:https://www.cnblogs.com/mzxiaoze/p/10413399.html
本文介绍了解决MySQL 8.0及以上版本中忘记root密码的方法,包括通过命令行更新密码及解决Navicat远程连接失败的问题。

217

被折叠的 条评论
为什么被折叠?



