MySQL对用户密码强度有比较灵活的设置,可以根据实际系统需要对密码复杂度进行设置,具体步骤与注意事项如下:
* q5 L; L/ ^" f% p3 G; f U3 [1、检查是否开启密码复杂度校验:" L* p' X4 p) I6 s g* e1 |/ t
/ b% X9 q; Q( A$ m$ p& \$ i8 Xmysql> show variables like '%validate%';+-----------------------------------+-------+| Variable_name | Value |+-----------------------------------+-------+| query_cache_wlock_invalidate | OFF |+-----------------------------------+-------+1 row in set (0.00 sec)2、若开启,则不用执行以下步骤,如果未开启,需要开启。' [% d" R ]1 e/ z' G% i+ j3 K
" i' ~8 I2 Q- `7 F+ B
启用密码复杂度插件,在mysql中执行以下命令:
( E& C- p$ G- I @& m: ?mysql>INSTALL PLUGIN validate_password SONAME 'validate_password.so';3、开启之后默认配置检查:- w+ {% i/ m, V, E) A$ I
! A" y; \7 l* `1 F! Bmysql> 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
7 P* p" G8 [4 o% W[mysqld]plugin-load = validate_password.sovalidate_password_length = 10validate_password_policy = 1validate-password = FORCE_PLUS_PERMANENT说明:密码强度开启对现有用户密码无影响,对之后创建账号或者修改密码会严格校验密码是否符合要求。+ @0 W( q% k' x$ B4 f4 Q
4、注意事项
. P6 {* ^2 v& ?
; I* f9 u, u0 u9 ^/ d8 b" g在使用密码复杂度插件时,如果使用CREATE语句同时创建两个用户,会出现一个用户创建成功而另外一个用户创建失败的情况,会在主库在 binlog 里写一条 INCIDENT_EVENT,导致主从复制关系异常。
+ l" J9 G/ z0 C' `- P( w8 w9 i5 O3 L) C9 Q) X' v F% f
; S+ f8 V, Z, ]/ x) I
参考资料
8 G T. c# s2 t2 L2 F
) M, X& S4 _( nhttps://blog.csdn.net/YJX99999/article/details/128477595
5 w" p0 @7 q4 B O' B$ ahttps://www.toutiao.com/article/7267469989761516044/?channel=&source=search_tab |