| 參數 | 默認值 | 含義 |
validate_password_policy | MEDIUM (1) | 策略等級:LOW(0)/MEDIUM(1)/STRONG(2) |
validate_password_length | 8 | 最小長度(受下方三計數影響動態調整) |
validate_password_number_count | 1 | 至少包含數字個數 |
validate_password_special_char_count | 1 | 至少包含特殊字符個數 |
validate_password_mixed_case_count | 1 | 至少包含大小寫字母個數 |
策略等級差異
- LOW (0):僅檢查長度 ≥
validate_password_length
- MEDIUM (1):長度 + 數字 + 大小寫 + 特殊字符(默認)
- STRONG (2):MEDIUM + 字典檢查(需配置
validate_password_dictionary_file)
三、 臨時放寬策略(測試/開發環境)
-- 1. 降級策略為 LOW(僅驗證長度)
SET GLOBAL validate_password_policy = LOW;
-- 2. 設置最小長度(最小 4,受計數器下限約束)
SET GLOBAL validate_password_length = 4;
-- 3. 驗證
SHOW VARIABLES LIKE 'validate_password%';
-- 4. 現在可設置簡單密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY '1234';
⚠️ 生產環境嚴禁 降級策略,僅供本地開發/測試庫使用。
四、 生產環境合規密碼生成指南
滿足 MEDIUM 策略的密碼模板:
- 長度 ≥ 8
- 含大寫:
A-Z
- 含小寫:
a-z
- 含數字:
0-9
- 含特殊符號:
!@#$%^&*()_+-=
示例:MyS3cureP@ss!2024、Db@Admin#2024_Q4
五、 參數動態調整機制
-- 修改計數器會自動推高 validate_password_length 下限
SET GLOBAL validate_password_mixed_case_count = 2;
-- length 自動從 8 變為 6 (1+1+2*2=6),但不低於顯式設置值
SHOW VARIABLES LIKE 'validate_password_length';
公式:min_length = number_count + special_char_count + 2 * mixed_case_count
六、 插件狀態檢查與卸載(極端情況)
-- 查看插件狀態
SHOW PLUGINS LIKE 'validate_password%';
-- 卸載插件(需重啟生效,生產慎用)
UNINSTALL PLUGIN validate_password;
七、 總結
ERROR 1819 根因是 validate_password 插件強制複雜度。開發環境可臨時降級 validate_password_policy=LOW + length=4 設置簡單密碼;生產環境必須生成符合 MEDIUM/STRONG 策略的強密碼。理解參數聯動機制(計數器 → 長度下限),避免「明明設了 length=4 卻報錯」的困惑。建議納入資料庫初始化腳本自動配置策略,而非手動調整。
- 上一篇文章: PHP 連接 MySQL 核心步驟詳解:從 mysql 到 mysqli 再到 PDO 的演進與最佳實踐
- 下一篇文章: MySQL Binlog 自動清理與主從安全清理完整指南:expire_logs_days、PURGE 實戰與復制模式解析
Copyright ©
程式碼之家 All Rights Reserved