8.0版本试过,其它版本自行尝试。
以下来记录mysql 命令行忘记密码 如何快速修改密码。
如果遇到问题求助,欢迎私信。
闲言碎语:
工作当中经常会用到mysql这类数据,可能在搭建之初,知道怎么操作赋权包括设置密码。
但突然让你重新操作修改密码就很麻烦。又要去网上翻文档。毕竟谁天天改这玩意,还能死机硬背 记住数据库的修改密码命令和流程,半年可能都不操作一次。
目录
1、设置免密模式
使用vi /etc/my.cnf,添加到【mysqld】后面
skip-grant-tables #配置项告诉mysql跳过权限验证,允许任何用户以任何密码登录
2、重启数据库服务
systemctl restart mysqld #重启数据库服务让它的免密配置生效
3、免密登录进入数据库,关闭只读(否则不让修改密码)
mysql> set global read_only=0; #0为读写 1为只读
Query OK, 0 rows affected (0.00 sec)mysql> flush privileges; #刷新生效
Query OK, 0 rows affected (0.05 sec)mysql> show variables like '%read_only%'; #查看是否更改成功 read_only OFF即可
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| innodb_read_only | OFF |
| read_only | OFF |
| tx_read_only | OFF |
+------------------+-------+
3 rows in set (0.00 sec)
4、修改密码(不建议使用简单密码)
这里将mysql@localhost密码改为123456,如需改为别的密码,替换即可。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
一般root用户都开启了远程访问,所以更改时要下面这个 (root@%)
mysql> ALTER USER'root'@'localhost' IDENTIFIED BY '123456';
5、退出数据库,把免密那行删掉,重启数据库服务
你也可能使用的是tar包安装的,也可以自行按照tar包流程进行重启。
systemctl restart mysqld #重启数据库服务
6、重新按照设置的密码登录即可
mysql -uroot -p'XXX'
提示报错问题解决
密码复杂度不符合要求
以下配置按照自己需求适当修改即可。
更改密码复杂度
set global validate_password.policy=LOW; #策略要求低
set global validate_password.length=6; #设置密码长度至少为 6