查看現在的密碼策略:
mysql> show variables like 'validate_password%';
variable_name | value |
validate_password_dictionary_file | |
validate_password_length | 4 |
validate_password_number_count | 1 |
validate_password_mixed_case_count | 1 |
validate_password_policy | low |
validate_password_special_char_count | 1 |
validate_password_number_count參數是密碼中至少含有的數字個數,當密碼策略是MEDIUM或以上時生效。
validate_password_special_char_count參數是密碼中非英文數字等特殊字符的個數,當密碼策略是MEDIUM或以上時生效。
validate_password_mixed_case_count參數是密碼中英文字符大小寫的個數,當密碼策略是MEDIUM或以上時生效。
validate_password_length參數是密碼的長度,這個參數由下面的公式生成
validate_password_number_count+ validate_password_special_char_count+ (2 * validate_password_mixed_case_count)
validate_password_dictionary_file參數是指定密碼驗證的字典文件路徑。
validate_password_policy這個參數可以設為0、1、2,分別代表從低到高的密碼強度,此參數的默認值為1,如果想將密碼強度改弱,則更改此參數為0。
創建用戶時報錯:
mysql> CREATE USER 'test'@'localhost' IDENTIFIED BY 'test';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
報錯原因:
指定的密碼沒有符合現有的密碼策略。
解決方法:
可以按照現有策略設置密碼,也可以更改密碼策略。
mysql> CREATE USER 'test'@'localhost' IDENTIFIED BY 'System#2016';
Query OK, 0 rows affected (0.16 sec)
② 更改密碼策略,降低密碼的驗證標准
--更改密碼策略為LOW
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
--更改密碼長度
mysql> set global validate_password_length=0;
Query OK, 0 rows affected (0.00 sec)
--密碼最小長度為4
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password_dictionary_file | |
| validate_password_length | 4 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | LOW |
| validate_password_special_char_count | 1 |
+--------------------------------------+-------+
6 rows in set (0.00 sec)
mysql> drop user 'test'@localhost;
Query OK, 0 rows affected (0.07 sec)
--創建長度為3的密碼報錯
mysql> CREATE USER 'test'@'localhost' IDENTIFIED BY 'tes';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
--創建長度為4的密碼,4為現有密碼策略的最小長度
mysql> CREATE USER 'test'@'localhost' IDENTIFIED BY 'test';
Query OK, 0 rows affected (0.01 sec)