一、問題描述
1、在安裝mysql8.0時,修改臨時密碼,因密碼過於簡單(如:123456),不符合mysql密碼規範,會觸發乙個報錯資訊:
error 1819 (hy000): your password does not satisfy the current policy requirements。
二、遇到問題
1、解決辦法調整mysql密碼驗證規則,修改 policy 和 length 的值。
2、mysql 5.7 進行如下設定,即可解決問題:
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
3、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'
三、問題解決
1、分析:可以看到,修改 policy 和 length 的值,在mysql5.7中好使,在mysql8.0中無效。'validate_password_policy' 變數不存在。
2、解決:先修改乙個滿足的密碼(如:root_12root)。
補充: validate_password_policy 有以下取值:
預設是1,即medium,所以剛開始設定的密碼必須符合長度,且必須含有數字,小寫或大寫字母,特殊字元。
3、密碼修改後,可用命令檢視 validate_password 密碼驗證外掛程式是否安裝。
mysql> show variables like 'validate_password%';
4、mysql 5.7 檢視密碼驗證外掛程式:
5、 mysql 8.0 檢視密碼驗證外掛程式:
四、問題總結
1、通過檢視 mysql5.7 和 mysql8.0 密碼驗證外掛程式對比,可知兩個版本中,變數名不一樣。(*_password_policy 和 *_password.policy ) --- 問題原因所在。
2、mysql 8.0 調整密碼驗證規則:
mysql> set global validate_password.policy=0;
mysql> set global validate_password.length=1;
MySQL 8 0修改密碼
最近系統公升級牽涉到mysql公升級,需要公升級到 mysql 8.0,涉及mysql使用者的密碼修改,特地記錄一下!mysql 8.0前修改密碼的官網連線 在mysql 8.0前,執行 set password password 新密碼 進行密碼修改,在mysql 8.0後,以上的方法使用root...
MySQL8 0 忘記密碼 修改密碼
mysql 5.7.9以後廢棄了password欄位和password 函式 authentication string 字段表示使用者密碼,而authentication string欄位下只能是mysql加密後的41位字串密碼。所以需要用一下方式來修改root密碼 alter user root...
MySQL8 0 修改root密碼
mysql 5.7 的版本,因為在user表中沒有password欄位,一直使用下邊的方式來修改root密碼 use mysql update user set authentication string password root where user root 現在要用mysql8.0.11版本...