不推荐,但是可能有用的关于更改MySQL数据库密码策略的知识

这个文章主要是因为我新装了一个mysql数据库在我的Linux虚拟机上,但是设置密码的时候,如果是很简单的密码会修改失败的问题,这主要就是密码策略的问题。

其实设置成很简单的密码并不是很推荐,但是只是拿来本地测试或练习的话,还是可以的。

如果要进行操作,建议进行下面的步骤。

1、 查看与密码验证策略有关的参数

show variables like 'validate_password%';

2、根据情况修改配置,不同的版本可能出现的内容不同,下面贴上在 mysql8.0mysql 5.7 中的 参数信息

  • 8.0 (这里已经修改过策略了)
mysql> show variables like 'validate_password%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password.check_user_name    | ON    |
| validate_password.dictionary_file    |       |
| validate_password.length             | 4     |
| validate_password.mixed_case_count   | 1     |
| validate_password.number_count       | 1     |
| validate_password.policy             | LOW   |
| validate_password.special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.00 sec)
  • 5.7 (这里没有修改过策略)
mysql> show variables like 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | OFF    |
| 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      |
+--------------------------------------+--------+
7 rows in set (0.00 sec)

可以看到参数名称大同小异,就是一个是.另一个是_

3、 这里主要修改两个变量的值,以8.0为例,不同的版本对应修改即可。

  • 设置密码长度
set global validate_password.length = 0; 

虽然是设置为0,但是实际上会变成它允许的最小值,这里8.0 的是 4

  • 设置策略 policy
set global validate_password.policy = 0

这里虽然是设置成数字,但是实际上会显示成 LOW,这里会导致大小写字母和特殊字符的校验设置失效。

  • 至于 其他的 参数,建议根据自己的需求进行修改。

4、 然后设置一下新的的密码即可

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

如果觉得有收获,欢迎点赞和评论,更多知识,请点击关注查看我的主页信息哦~

你可能感兴趣的:(不推荐,但是可能有用的关于更改MySQL数据库密码策略的知识)