- 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。再次重启即可