mysql密码复杂度策略修改

avatar 2021年5月20日18:13:12 评论 1,243 次浏览

安装mysql后在日志里提示了一个密码,但是,用这个密码登陆到mysql后,执行命令时出现提示:“ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.”,已经进入到mysql,说明密码没有问题,尝试着修改一下mysql的密码,但是提示密码不符合要求:“ERROR 1819 (HY000): Your password does not satisfy the current policy requirements”。一下子问题多了起来,没关系,我们一个一个多来,先修改密码的复杂度。

validate_password_policy是随着validate_password插件诞生而诞生的,换句话说如果没有安装validate_password插件,mysql就不支持密码的复杂度和长度的限制了。如果没有安装,可以执行:install plugin valaidte_password soname 'validate_password.so';57版本的,8.0版本的不一样

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)

关于插件和组件对应的系统变量说明:

选项 默认值 参数描述
validate_password_check_user_name ON 设置为ON的时候表示能将密码设置成当前用户名。
validate_password_dictionary_file   用于检查密码的字典文件的路径名,默认为空
validate_password_length 8 密码的最小长度,也就是说密码长度必须大于或等于8
validate_password_mixed_case_count 1 如果密码策略是中等或更强的,validate_password要求密码具有的小写和大写字符的最小数量。对于给定的这个值密码必须有那么多小写字符和那么多大写字符。
validate_password_number_count 1 密码必须包含的数字个数
validate_password_policy MEDIUM 密码强度检验等级,可以使用数值0、1、2或相应的符号值LOW、MEDIUM、STRONG来指定。

0/LOW:只检查长度。

1/MEDIUM:检查长度、数字、大小写、特殊字符。

2/STRONG:检查长度、数字、大小写、特殊字符、字典文件。

validate_password_special_char_count 1 密码必须包含的特殊字符个数

注意:组件和插件的默认值可能有所不同。例如,MySQL 5.7. validate_password_check_user_name的默认值为OFF。更多详细具体信息,建议参考官方文档。

设置长度为4,长度最小为4,设置1为无效。复杂度为0
set global validate_password_policy=0;
set global validate_password_length=4;

卸载插件

mysql> UNINSTALL PLUGIN  validate_password;
Query OK, 0 rows affected, 1 warning (0.01 sec)

卸载组件

mysql> UNINSTALL COMPONENT 'file://component_validate_password';
Query OK, 0 rows affected (0.02 sec)

设置后,就可以修改密码;

alter user 'root'@'localhost' identified by '1234';
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: