MySQL对用户密码强度有比较灵活的设置,可以根据实际系统需要对密码复杂度进行设置,具体步骤与注意事项如下:

1、检查是否开启密码复杂度校验:

mysql> show variables like '%validate%';
+-----------------------------------+-------+
| Variable_name                             | Value  |
+-----------------------------------+-------+
| query_cache_wlock_invalidate     | OFF    |
+-----------------------------------+-------+
1 row in set (0.00 sec)

2、若开启,则不用执行以下步骤,如果未开启mysql改密码,需要开启。

启用密码复杂度插件,在mysql中执行以下命令:

mysql>INSTALL PLUGIN validate_password SONAME 'validate_password.so';

3、开启之后默认配置检查:

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个特殊字符
+-----------------------------------------+--------+

若想永久生效,建议将以下参数写入配置文件f

[mysqld]
plugin-load = validate_password.so
validate_password_length = 10
validate_password_policy = 1
validate-password = FORCE_PLUS_PERMANENT

说明:密码强度开启对现有用户密码无影响,对之后创建账号或者修改密码会严格校验密码是否符合要求。

4、注意事项

在使用密码复杂度插件时mysql改密码,如果使用语句同时创建两个用户,会出现一个用户创建成功而另外一个用户创建失败的情况,会在主库在 里写一条 ,导致主从复制关系异常。

参考资料

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注