MySQL8.0 忘记 root 密码下如何修改密码

环境:Linux centos8 4.18.0-80.el8.x86_64、Mysql8.0.18

1、vim /etc/my.cnf,添加skip-grant-table(跳过权限验证)

Mysql8.0忘记root密码下如何修改密码

2、重启mysql服务

systemctl stop mysqld //停止服务
systemctl restart mysqld //重启服务
systemctl status mysqld //服务状态查看

MySQL8.0 忘记 root 密码下如何修改密码

3、刷新权限表:flush privileges;

MySQL8.0 忘记 root 密码下如何修改密码

4、mysql登录:mysql -uroot -p(无需密码)

MySQL8.0 忘记 root 密码下如何修改密码

5、密码重置(Mysql8.0+有变化)

先把root的旧密码置空
use mysql;
update user set authentication_string='' where user='root';
备注:Mysql5.7+ password字段 已改成 authentication_string字段

MySQL8.0 忘记 root 密码下如何修改密码

重置成新密码
alter user 'root'@'localhost' identified by 'newpassword';
备注:Mysql8.0修改密码方式已有变化(此处是个坑,需要注意)
Mysql8.0之前:
update user set password=password('root') where user='root';

MySQL8.0 忘记 root 密码下如何修改密码

6、vim /etc/my.cnf,删除skip-grant-table

7、再次重启mysql服务

8、使用新密码登录mysql

mysql -uroot -proot

MySQL8.0 忘记 root 密码下如何修改密码

本作品采用《CC 协议》,转载必须注明作者和本文链接
阿德
zhangdeTalk
讨论数量: 2

在 /etc/mysql下面有一个debain.cnf文件中记录了mysql的初始用户和密码,您可以用此用户登录去修改root密码

4年前 评论
zhangdeTalk

@xiaotai Centos的/etc下是没有这个文件的,debian.cnf应该是debian和ubuntu系统下才有的。

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!