记录自己在mysql8忘记密码找资料进行重置的步骤
- 在计算机中打开服务,并停止mysql服务

- 打开命令行,输入以下命令重启mysql服务(不需要密码进入mysql),正常情况下,这个命令行就被占用了 如果无效的话就在mysql服务所在目录的bin文件夹下执行这个指令
mysqld --console --skip-grant-tables --shared-memory
- 这时mysql就不用密码登录了,因为上一个命令行被占用,我们另外打开一个命令行,直接输入以下命令进入命令行
mysql
// 进入mysql数据库
use mysql
// 以下是帮助看表的步骤,可省略
// 查看user表有哪些字段,这里会发现没有password字段,8版本的密码存在authentication_string字段里,且该字段是经过转化的。所以我们的思路是先置空,能进去了之后再重置密码,
desc user;
// 查看authentication_string存密码的这个字段看看里面存的啥
select authentication_string,user form user;
- 因为存的密码是经过转化的,没法直接改密码,所以我们换个思路,把该字段置空
update user set authentication_string='' where user='root';--将字段authentication_string置为空
- 然后我们就可以正常进入mysql改密码了,注意,这种启动模式下我们没办法直接修改,所以需要重启mysql服务
- 关闭刚才的一直在启动的命令行。
- 去服务里重启mysql服务。
- 启动成功后,重新打开命令行,输入一下代码,以root身份进入mysql
mysql -u root -p
-- 然后让输入密码,这里不用输入直接回车确认就行。
ALTER user 'root'@'localhost' IDENTIFIED BY '新密码'; --新密码处输入你想改的新密码就行了