mysql8.0.忘记root密码

环境:

linux:centos7.3

mysql:mysql8.0.25

步骤:

先修改配置文件
/etc/my.cnf
在[mysqld]
加入skip-grant-tables

重启mysql

systemctl restart mysqld

无密码登入mysql
mysql -uroot -p

切换到mysql库
use mysql
将root密码设置为空
update user set authentication_string=‘‘ where user=‘root‘;
退出mysql

修改配置文件,删掉skip-grant-tables

重启mysql

这时仍然可以无密码登入mysql
mysql -uroot -p

修改mysql 密码
alter USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘ABC@efg2021‘;
flush privileges;

退出mysql 用新密码登录即可

 

特别说明的是:

1、alter USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘ABC@efg2021‘;  语句

mysql8.0 在skip-grant-tables模式下  是不可以使用的,会报错。

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

 

2、在将root密码设置为空,这一步如果直接设定密码,
update user set authentication_string=‘ABC@efg2021‘ where user=‘root‘;

在mysql里面会提示成功,但是当取消skip-grant-tables模式,重启mysql后,使用该密码仍是不能登录mysql

mysql8.0.忘记root密码

 

包括用其他其他语句直接修改root密码的(可能有我没试到过的把)。退出skip-grant-tables模式后,该密码都不能登录。所以将密码设为空这一步不能少。

 

mysql8.0.忘记root密码

上一篇:冬季实战营第一期:从零到一上手玩转云服务器总结


下一篇:asp.net core中IHttpContextAccessor和HttpContextAccessor的妙用