查看得知,原來MySQL5.6.6增加了密碼強度驗證插件validate_password,相關參數設置的較爲嚴格,所以……
使用了該插件會檢查設置的密碼是否符合當前設置的強度規則,若不滿足則拒絕設置。影響的語句和函數有:create user,grant,set password,password(),old password。
密碼強度可由validate password strength()函數評估(返回0至100之間的數),如:
mysql>select VALIDATE_PASSWORD_STRENGTH('123456');
mysql>select VALIDATE_PASSWORD_STRENGTH('Password@123456');
注意,已經散列過的密碼不被驗證,如:
mysql> SET PASSWORD = PASSWORD('abc');
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> SET PASSWORD = '*0D3CED9BEC10A777AEC23CCC353A8C08A633045E';
Query OK, 0 rows affected (0.01 sec)
相關選項:
- --validate-password=ON/OFF/FORCE/FORCE_PLUS_PERMANENT:決定是否使用該插件(及強制/永久強制使用)。
- validate_password_dictionary_file:插件用於驗證密碼強度的字典文件路徑。
- validate_password_length:密碼最小長度。
- validate_password_mixed_case_count:密碼至少要包含的小寫字母個數和大寫字母個數。
- validate_password_number_count:密碼至少要包含的數字個數。
- validate_password_policy:密碼強度檢查等級,0/LOW、1/MEDIUM、2/STRONG。
- validate_password_special_char_count:密碼至少要包含的特殊字符數。
- 0/LOW:只檢查長度。
- 1/MEDIUM:檢查長度、數字、大小寫、特殊字符。
- 2/STRONG:檢查長度、數字、大小寫、特殊字符字典文件。
- 插件對應的庫對象文件需在配置選項plugin_dir指定的目錄中。
- 可使用--plugin-load=validate_password.so在server啓動時載入插件,或者將plugin-load=validate_password.so寫入配置文件。
- 也可以通過如下語句在server運行時載入插件(會註冊進mysql.plugins表)mysql> INSTALL PLUGIN validate_password SONAME 'validate_password.so';
[mysqld]
plugin-load=validate_password.so
validate-password=FORCE_PLUS_PERMANENT
具體參考:http://dev.mysql.com/doc/refman/5.6/en/validate-password-plugin.html