数据库
MYSQL 8.0重置ROOT密码
  • By刘立博
  • 2021-01-16 22:22:04
  • 755人已阅读

跳过权限验证

通过添加配置项skip-grant-tables,可以使MYSQL在启动时不加载用户和权限信息。此时便可以使用空密码登录MYSQL控制台

 

编辑my.cnf

在MYSQLD下方添加配置项skip-grant-tables

[mysqld]

skip-grant-tables

 

重启MYSQL,即可以空密码登录

 

systemctl restart mysqld

 

加载用户和权限配置

由于我们使用了skip-grant-tables跳过了权限验证,MYSQL并没有将用户信息和用户权限加载到内存,若直接修改密码会得到以下错误:

mysql> alter user 'root'@'localhost'IDENTIFIED BY '123456';

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

 

所以需要使用flush privileges命令将用户和权限配置加载至内存

mysql> flush privileges;

Query OK, 0 rows affected (0.01 sec)

 

然后便可以修改密码了

mysql> alter user 'root'@'localhost'IDENTIFIED BY '123456';

Query OK, 0 rows affected (0.00 sec)

 

删除配置项

成功修改密码后,删除配置项skip-grant-tables。再次重启即可