當執行sql:SHOW VARIABLES LIKE 'validate_password%';提示empty,說明沒有安裝密碼插件
1、查看當前mysql安裝的插件信息
mysql> show plugins;
2、要使服務器可用,插件庫文件必須位於MySQL插件目錄中(由plugin_dir系統變量命名的目錄)。如果需要,通過在服務器啟動時設置plugin_dir的值來配置插件目錄位置。
mysql> show variables like
'plugin_dir'
;
3、插件庫的文件名是validate_password.文件名后綴根據平台的不同而不同(例如.so對於Unix和類Unix系統,.dll對於Windows)。要在服務器啟動時加載插件,可以使用--plugin-load-add選項來命名包含它的庫文件。使用這種插件加載方法,必須在每次服務器啟動時提供該選項:
[mysqld]
plugin-load-add=validate_password.dll
#服務器在啟動時加載插件,並防止在服務器運行時刪除插件。
validate-password=FORCE_PLUS_PERMANENT
4、修改my.ini之后,重啟服務器以使新設置生效。或者,要在運行時注冊插件,可以使用以下語句(根據需要調整.so后綴):
mysql> INSTALL PLUGIN validate_password SONAME
'validate_password.dll'
;
validate_password_policy:密碼安全策略,默認MEDIUM策略:0表示只需要滿足長度,1表示滿足長度+數字+大小寫+特殊字符
策略 |
檢查規則 |
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 |
validate_password_dictionary_file:密碼策略文件,策略為STRONG才需要
validate_password_length:密碼最少長度
validate_password_mixed_case_count:大小寫字符長度,至少1個
validate_password_number_count :數字至個1個
validate_password_special_char_count:特殊字符至少1個
所以默認MEDIUM即可(長度=2*大小寫+特殊字符+數字),設置語句:
set global validate_password_mixed_case_count=5;設置大小寫至少5個
set global validate_password_special_char_count=3;設置特殊字符至少3個
表示設置密碼長度至少14位=至少10位大小寫+至少3位特殊字符+至少1位數字
6、設置好密碼策略之后,開始新增賬戶
flush privileges;
create user 'soft'@'localhost' identified by 'QWErtQWErt!@#3';
flush privileges;