MySQL对用户密码强度有比较灵活的设置,可以根据实际系统需要对密码复杂度进行设置,具体步骤与注意事项如下:
c: A! T* p0 p. M _+ _7 E1、检查是否开启密码复杂度校验: N3 F7 N; b- F/ {7 K
, Z9 Z" I& W- P5 `6 W
mysql> show variables like '%validate%';+-----------------------------------+-------+| Variable_name | Value |+-----------------------------------+-------+| query_cache_wlock_invalidate | OFF |+-----------------------------------+-------+1 row in set (0.00 sec)2、若开启,则不用执行以下步骤,如果未开启,需要开启。
( I; L! s! y2 p6 J% j
; [' v Z' }0 ^* [5 y启用密码复杂度插件,在mysql中执行以下命令:. u/ w* G8 P$ u0 Z8 _6 @
mysql>INSTALL PLUGIN validate_password SONAME 'validate_password.so';3、开启之后默认配置检查:* c3 R% ~! R C0 Q
- i/ ?" T) ^- Z1 _! o- p# I
mysql> show variables like 'validate%';+-----------------------------------------+--------+| Variable_name | Value |+-----------------------------------------+--------+| validate_password_check_user_name | ON || validate_password_dictionary_file | || validate_password_length | 8 | #密码至少8个长度| validate_password_mixed_case_count | 1 | #至少1个大小写字符| validate_password_number_count | 1 | #至少1个数字| validate_password_policy | MEDIUM | #密码策略默认中度| validate_password_special_char_count | 1 | #至少1个特殊字符+-----------------------------------------+--------+若想永久生效,建议将以下参数写入配置文件my.cnf) A: d7 L0 r0 I' G7 M
[mysqld]plugin-load = validate_password.sovalidate_password_length = 10validate_password_policy = 1validate-password = FORCE_PLUS_PERMANENT说明:密码强度开启对现有用户密码无影响,对之后创建账号或者修改密码会严格校验密码是否符合要求。
! `0 X; F) U1 Z3 a; T0 o4、注意事项1 Y! Q$ \5 D) i/ Z! U9 U2 \
7 `0 r, I) A$ w% K# W$ n
在使用密码复杂度插件时,如果使用CREATE语句同时创建两个用户,会出现一个用户创建成功而另外一个用户创建失败的情况,会在主库在 binlog 里写一条 INCIDENT_EVENT,导致主从复制关系异常。 q3 m4 ~. ~5 Q$ m
2 v! ?0 n) J) i1 {
& S: Q7 Z7 M# E; n% `9 E' y4 w8 O: h+ }参考资料, X! l$ \# p m& @ D1 m
) C6 d/ f- R6 Y2 ahttps://blog.csdn.net/YJX99999/article/details/128477595
( `% n% \4 N' Y2 j) ?* `3 ^https://www.toutiao.com/article/7267469989761516044/?channel=&source=search_tab |