这个文章主要是因为我新装了一个mysql数据库在我的Linux虚拟机上,但是设置密码的时候,如果是很简单的密码会修改失败的问题,这主要就是密码策略的问题。
其实设置成很简单的密码并不是很推荐,但是只是拿来本地测试或练习的话,还是可以的。
如果要进行操作,建议进行下面的步骤。
1、 查看与密码验证策略有关的参数
show variables like 'validate_password%';
2、根据情况修改配置,不同的版本可能出现的内容不同,下面贴上在 mysql8.0 和 mysql 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';
如果觉得有收获,欢迎点赞和评论,更多知识,请点击关注查看我的主页信息哦~
网友评论