MySQL-8.0.21数据库密码忘了怎么办

最近在学习数据库,简单记录下遇到的问题。root用户的密码忘了,无法登进数据库,尝试了网上的一些方法,
常用的

mysqld --skip-grant-tables

来跳过用户验证的方法在这个版本中无效,可以换成以下命令来跳过权限表认证,在mysql安装目录的bin文件夹下,输入:

mysqld --console --skip-grant-tables --shared-memory

此时可以直接登录数据库,提示输入密码时直接回车,

mysql -uroot -p

看了一些帖子说需要另开一个cmd来进行登录,但是试了好多次另开一个cmd之后还是需要输入密码,所以就直接在当前cmd窗口下进行登录,居然成功登录了!
登录后选择mysql数据库,用户名密码保存在user表中,
设置新密码:

ALTER user 'root'@'localhost' identified by '新密码';

如果这一步不行的话,先执行下面的语句将密码设为空,再执行上述密码修改的语句。

UPDATE user SET authentication_string = '' WHERE User = 'root';

在该版本的user中没有password字段,使用authentication_string字段。可以先用查询语句看下表结构:

select * from user;
或者
desc user;

上述步骤完成之后一定要刷新权限,

flush privileges;

密码就修改成功啦!
本文参考了: https://blog.csdn.net/zhoupingqi2017/article/details/105894015/

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页