標籤:none lob mysqld 使用者密碼 密碼強度 特殊 5.7 ror ane
Mysql 5.7 預設對使用者密碼有密碼強度要求,如果指定弱密碼,會提示如下:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
Mysql 5.7 中的密碼強度控制,是由外掛程式來實現的,具體是由作業系統上的檔案/usr/lib64/mysql/plugin/validate_password.so 來控制(RPM安裝,即預設位置)。先來瞭解下密碼原則
- 查看預設密碼原則
-
mysql> show variables like ‘validate_password_%‘;+--------------------------------------+--------+| Variable_name | Value |+--------------------------------------+--------+| validate_password_check_user_name | OFF || validate_password_dictionary_file | || validate_password_length | 8 || validate_password_mixed_case_count | 1 || validate_password_number_count | 1 || validate_password_policy | MEDIUM || validate_password_special_char_count | 1 |+--------------------------------------+--------+
其中,我們看到參數:validate_password_policy (即密碼原則)的值是MEDIUM。官方對於該參數的值說明如下:
| policy |
explanation |
| 0 or LOW |
length |
| 1 or MEDIUM |
0+numeric;lowercase/uppercase; special characters |
| 2 or STRONG |
1+validate_password_dictionary_file |
在上面show variables 查看到的參數,除 validate_password_policy 外,其他都是密碼原則的各種控制參數。
-
-
- validate_password_length ---> 密碼長度,預設8
- validate_password_mixed_case_count ---> 大小寫字母每種最少多少個,預設開啟,至少1個。
- validate_password_number_count ---> 包含數字個數,預設 >= 1
- validate_password_special_char_count ---> 特殊字元個數,預設 >= 1
- validate_password_dictionary_file ---> 密碼強度控制字典路徑。
2. 密碼強度驗證的開啟與關閉 2.1 啟用
外掛程式對應的庫對象檔案需在配置選項plugin_dir指定的目錄中。
可使用--plugin-load=validate_password.so,在server啟動時載入外掛程式,或者將plugin-load=validate_password.so寫入設定檔,:
[mysqld]plugin-load=validate_password.sovalidate-password=FORCE_PLUS_PERMANENT
也可以通過如下語句在server運行時載入外掛程式(會註冊進mysql.plugins表)
mysql> INSTALL PLUGIN validate_password SONAME ‘validate_password.so‘;
2.2 關閉 方法1) 關閉密碼原則
在/etc/my.cnf設定檔中增加:
[mysqld]validate_password=off
然後重啟mysql
方法2)更改密碼原則
set global validate_password_policy=0; # 修改密碼原則為lowset global validate_password_length=0; # 密碼長度為設定為0 ,即大於0個字元的密碼都可以
方法3)初始化Mysql時不啟用外掛程式
mysqld --initialize-insecure --datadir=/var/lib/mysql --basedir=/usr --user=mysql
Mysql 5.7 密碼原則 ERROR 1819 (HY000)