注:MySQL5.7破解root密码,跳过密码认证登录到数据库,直接修改表中的密码即可,但是MySQL 8.0则不可以这样修改root密码,需要跳过密码认证登录到数据库后,先将root密码设置为空,然后才可以登录到数据库,修改root密码。

1、遗忘MySQL 5.7数据库的root密码解决办法

[root@mysql01 ~]# mysql --version        #确定MySQL版本
mysql  Ver 14.14 Distrib 5.7.28, for linux-glibc2.12 (x86_64) using  EditLine wrapper
[root@mysql01 ~]# vim /etc/my.cnf         #编辑主配置文件
[mysqld]      #在mysqld这行下写入下面内容
skip-grant-tables
            .................#省略部分内容
[root@mysql01 ~]# systemctl restart mysqld      #重启MySQL服务,使配置文件生效
[root@mysql01 ~]# mysql -uroot           #跳过密码验证,直接登录数据库
#修改root密码为pwd@123,并刷新权限
mysql> use mysql;
mysql> update user set authentication_string = passwoord('pwd@123') where user = 'root';
mysql> flush privileges;     #刷新权限
mysql> exit
#配置密码验证,使用新密码登录
[root@mysql01 ~]# vim /etc/my.cnf         #编辑主配置文件
[mysqld] 
skip-grant-tables            #删除此行
[root@mysql01 ~]# systemctl restart mysqld          #重启使更改生效
#使用新密码即可成功登录
[root@mysql01 ~]# mysql -uroot -ppwd@123       

2、遗忘MySQL 8.0数据库的root密码解决办法

[root@mysql01 ~]# mysql --version        #查看MySQL版本
mysql  Ver 8.0.18 for linux-glibc2.12 on x86_64 (MySQL Community Server - GPL)
[root@mysql01 ~]# vim /etc/my.cnf         #编辑主配置文件
[mysqld]      #在mysqld这行下写入下面内容
skip-grant-tables
            .................#省略部分内容
[root@mysql01 ~]# systemctl restart mysqld      #重启MySQL服务,使配置文件生效
[root@mysql01 ~]# mysql -uroot           #跳过密码验证,直接登录数据库
#将root密码设置为空
mysql> use mysql
mysql> update user set authentication_string='' where user = 'root';
mysql> flush privileges;
mysql> exit
#开启密码验证并重新登录数据库
[root@mysql01 ~]# vim /etc/my.cnf         #编辑主配置文件
[mysqld] 
skip-grant-tables            #删除此行
[root@mysql01 ~]# systemctl restart mysqld          #重启使更改生效
[root@mysql01 ~]# mysql -uroot            #直接登录数据库
mysql> alter user root@localhost identified by 'pwd@111';
mysql> flush privileges;
mysql> exit
#使用新密码进行登录测试
[root@mysql01 ~]# mysql -uroot -ppwd@111

———————— 本文至此结束,感谢阅读 ————————