梦想还是要有的,万一忘了咋办?

0%

MySql8忘记密码

目录

  • 重置密码过程
  • validate配置项

忘记密码重置密码流程

1、在my.cnf 文件添加如下代码,并重启 mysqld 服务.

1
2
3
4
...
[mysqld]
skip-grant-tables
...

2、这时可以通过如下代码进入 mysql

1
mysql -u root

3、重置密码

1
2
3
4
5
6
7
8
flush privileges;

# 将 root 密码重置为空
update user set authentication_string ='' where user='root';

# 设置 root@% 的密码为 root
# 这里的密码 root 太简单 不会通过 validate 的校验
alter user 'root'@'%' indentified by 'root';

validate配置项

关于 mysql 密码策略相关参数:

1)、validate_password_length 固定密码的总长度;
2)、validate_password_dictionary_file 指定密码验证的文件路径;
3)、validate_password_mixed_case_count 整个密码中至少要包含大/小写字母的总个数;
4)、validate_password_number_count 整个密码中至少要包含阿拉伯数字的个数;
5)、validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM;

策略级别 长度 数字 大小写 特殊字符 字典文件
LOW(0) 1 0 0 0 0
MEDIUM(1) 1 1 1 1 0
STRONG(2) 1 1 1 1 1

1、查看校验规则

1
2
3
4
5
6
7
8
9
10
11
12
13
show variables like 'validate_password%';

+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | MEDIUM |
| validate_password.special_char_count | 1 |
+--------------------------------------+--------+

2、修改校验规则

1
2
3
set global validate_password_policy=0;
# 或者
set global validate_password_policy=LOW;