author:咔咔mysql
wechat:fangkangfksql
問題所在一個是 _ 鏈接的一個是 . 鏈接的
1、問題描述ui
一、在安裝MySQL8.0時,修改臨時密碼,因密碼過於簡單(如:123456),不符合MySQL密碼規範,會觸發一個報錯信息:插件
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements。 code
2、遇到問題rem
一、解決辦法調整MySQL密碼驗證規則,修改 policy 和 length 的值。class
二、MySQL 5.7 進行以下設置,便可解決問題:require
mysql> set global validate_password_policy=0; mysql> set global validate_password_length=1;
三、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'
3、問題解決date
一、分析: 能夠看到,修改 policy 和 length 的值,在MySQL5.7中好使,在MySQL8.0中無效。'validate_password_policy' 變量不存在。
二、解決: 先修改一個知足的密碼 (如:Root_12root)。
補充: validate_password_policy 有如下取值:
默認是1,即MEDIUM,因此剛開始設置的密碼必須符合長度,且必須含有數字,小寫或大寫字母,特殊字符。
三、密碼修改後,可用命令查看 validate_password 密碼驗證插件是否安裝。
mysql> SHOW VARIABLES LIKE 'validate_password%';
4、問題總結
一、 經過查看 MySQL5.7 和 MySQL8.0 密碼驗證插件對比,可知兩個版本中,變量名不同。(*_password_policy 和 *_password.policy ) --- 問題緣由所在。
二、MySQL 8.0 調整密碼驗證規則:
mysql> set global validate_password.policy=0; mysql> set global validate_password.length=1;