解決MySQL8.0報錯:Unknown system variable 'validate_password_policy'
阿新 • • 發佈:2019-01-27
解決MySQL8.0報錯:Unknown system variable 'validate_password_policy'
一、問題描述
1、在安裝MySQL8.0時,修改臨時密碼,因密碼過於簡單(如:123456),不符合MySQL密碼規範,會觸發一個報錯資訊:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements。
二、遇到問題
1、解決辦法調整MySQL密碼驗證規則,修改 policy 和 length 的值。
2、MySQL 5.7 進行如下設定,即可解決問題:
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
3、MySQL 8.0 執行程式碼:
mysql> set global validate_password_policy=0; ERROR 1193 (HY000): Unknown system variable 'validate_password_policy' mysql> set global validate_password_length=1; ERROR 1193 (HY000): Unknown system variable 'validate_password_length'
三、問題解決
1、分析: 可以看到,修改 policy 和 length 的值,在MySQL5.7中好使,在MySQL8.0中無效。'validate_password_policy' 變數不存在。
2、解決: 先修改一個滿足的密碼 (如:Root_12root)。
補充: validate_password_policy 有以下取值:
Policy | Tests Performed |
0 or LOW | Length |
1 or MEDIUM | Length; numeric, lowercase/uppercase, and special characters |
2 or STRONG | Length; numeric, lowercase/uppercase, and special characters; dictionary file |
預設是1,即MEDIUM,所以剛開始設定的密碼必須符合長度,且必須含有數字,小寫或大寫字母,特殊字元。
3、密碼修改後,可用命令檢視 validate_password 密碼驗證外掛是否安裝。
mysql> SHOW VARIABLES LIKE 'validate_password%';
4、MySQL 5.7 檢視密碼驗證外掛:
5、 MySQL 8.0 檢視密碼驗證外掛:
四、問題總結
1、 通過檢視 MySQL5.7 和 MySQL8.0 密碼驗證外掛對比,可知兩個版本中,變數名不一樣。(*_password_policy 和 *_password.policy ) --- 問題原因所在。
2、MySQL 8.0 調整密碼驗證規則:
mysql> set global validate_password.policy=0;
mysql> set global validate_password.length=1;