开启MySQL8的密码策略组件validate_password.250320
一、validate_password组件安装配置
- 安装组件
    INSTALL COMPONENT 'file://component_validate_password';
安装后,密码策略立即生效,但仅影响后续操作(如新建用户或修改密码)。
- 卸载组件
    UNINSTALL COMPONENT 'file://component_validate_password';
卸载后,密码复杂度策略失效,可设置简单密码(如 root)。
- 检查组件状态
  SHOW VARIABLES LIKE 'validate_password.%'; -- 查看参数配置
  SELECT * FROM mysql.component WHERE component_urn LIKE '%validate_password%'; -- 验证是否安装
  ```
### 二、validate_password组件核心参数
1. **密码策略控制**
  - **`validate_password.policy`**  
      定义密码强度等级,可选值:
      - **0/LOW**:仅检查密码长度(默认长度由 `validate_password.length` 控制,最小为 4。
      - **1/MEDIUM**(默认):检查长度、数字、大小写字母和特殊字符。
      - **2/STRONG**:在 MEDIUM 基础上,额外检查密码是否存在于字典文件。
  - **其他参数**
      - `validate_password.length`:密码最小长度(默认 8)。
      - `validate_password.mixed_case_count`:至少需要的大写+小写字母数(默认 1)。
      - `validate_password.number_count`:至少需要的数字个数(默认 1)。
      - `validate_password.special_char_count`:至少需要的特殊字符个数(默认 1)。
2. **密码强度评估函数**
  - 使用 `VALIDATE_PASSWORD_STRENGTH()` 函数评估密码强度(0-100 分),例如:
```sql
SELECT VALIDATE_PASSWORD_STRENGTH('Password123!'); -- 返回强度评分
三、常见问题与解决方案
- ERROR 1819 (密码不符合策略)
- 临时调整策略:
 
        SET GLOBAL validate_password.policy = LOW;  -- 降低强度要求
        SET GLOBAL validate_password.length = 4;    -- 最小长度设为 4
永久修改:在 my.cnf 中配置参数(需重启 MySQL).
- 客户端兼容性问题
- MySQL 8.0 默认使用 caching_sha2_password加密插件,旧客户端可能不支持。可修改用户加密方式:
 
- MySQL 8.0 默认使用 
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
喜欢请赞赏一下啦^_^赞赏后请加wx:weyocul,相关文章提到的的安装包稍后给到哦!没有收到赞赏直接加我的,直接无视哈!
 
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号