1. 程式人生 > 資料庫 >Mysql8.0忘記密碼與修改簡單密碼

Mysql8.0忘記密碼與修改簡單密碼

Mysql8.0忘記密碼與修改簡單規則密碼

登入資料庫時發現忘記密碼

首先在命令列執行

vim /etc/my.cnf

在最後一行新增,啟動免密登入

skip-grant-tables

儲存退出後,登入mysql,在命令列執行

 mysql -u root -p

直接回車後,執行sql

use mysql;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密碼';

修改密碼可能會報如下錯誤
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

需要先執行

 flush privileges;

再執行sql語句

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密碼';

會出現以下密碼策略問題異常資訊:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
解決辦法:
1、檢視 mysql 初始的密碼策略
執行語句

SHOW VARIABLES LIKE 'validate_password%'; 

進行檢視,如下圖
在這裡插入圖片描述
2、需要設定密碼的驗證強度等級,設定 validate_password.policy 的全域性引數為 LOW 即可,

執行語句

set global validate_password.policy=LOW;

進行設值,如下圖:
在這裡插入圖片描述
3、當前密碼長度為 8 ,如設定為 6 位的密碼,設定 validate_password.length 的全域性引數為 6 即可,
執行語句

set global validate_password.length=6; 

進行設值,如下圖:
在這裡插入圖片描述
4、現在可以為 mysql 設定簡單密碼了,只要滿足六位的長度即可,
執行語句

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密碼';

可以看到修改成功,表示密碼策略修改成功了!!!

關於 mysql 密碼策略相關引數;
1)、validate_password_length 固定密碼的總長度;
2)、validate_password_dictionary_file 指定密碼驗證的檔案路徑;
3)、validate_password_mixed_case_count 整個密碼中至少要包含大/小寫字母的總個數;
4)、validate_password_number_count 整個密碼中至少要包含阿拉伯數字的個數;
5)、validate_password_policy 指定密碼的強度驗證等級,預設為 MEDIUM;
關於 validate_password_policy 的取值:
0/LOW:只驗證長度;
1/MEDIUM:驗證長度、數字、大小寫、特殊字元;
2/STRONG:驗證長度、數字、大小寫、特殊字元、字典檔案;
6)、validate_password_special_char_count 整個密碼中至少要包含特殊字元的個數;

本部落格參考 [link] https://blog.csdn.net/qq_39344689/article/details/89674079
連結: https://blog.csdn.net/qq_39344689/article/details/89674079.