linux環境下Mysql8.0忘記密碼


天塌下來有武大郎頂着,不用擔心。Mysql數據庫沒有密碼也可以登錄,登上去重設個新密碼就可以了

 

首先,關閉Mysql服務: 

service mysqld stop

 

接着修改配置文件( my.cnf ):mysqld 下增加一行 skip-grant-tables

 補充:# 號表示注釋

 

重啟Mysql服務,不用密碼也可登錄了:

service mysqld start

 

免密登錄:

mysql -u root

 

選中系統庫( 為了訪問mysql.user用戶表,不要隨便選別庫 ):

use mysql;

 

 

 

 

 

 

 

 

 

 

說明:8.0版本不允許在跳過策略 skip-grant-tables 時修改密碼。

先清除root用戶密碼,刪除my.conf添加的 skip-grant-tables 后,通過空密碼正常訪問數據庫后,就可以修改密碼了。

補充:5.7/5.5 版本在此時就可以直接改一個新密碼了。

 

清除 root 用戶的密碼 :

update user set authentication_string = '' where user = 'root'; 

並退出:

quit;

 

 

 

 

接着把 my.cnf 添加的 skip-grant-table 刪掉,並重啟 mysql 服務。

現在我們已經可以正常登錄數據庫了:

mysql -u root -p

enter password 處(輸密碼的地方)敲擊回車即可登錄。

 

 

 

 

 

 

 

 

查看密碼策略:

SHOW VARIABLES LIKE 'validate_password%';

 

 

 

 

 

 

 

補充:修改密碼策略(不建議使用簡單密碼):

只校驗長度:set global validate_password_policy=LOW;  

密碼長度6位:set global validate_password_length=6;   

 

最后根據策略修改密碼:

ALTER USER 'root'@'%' IDENTIFIED BY '123456' ; 

 

可能出現的報錯: host ( 主機名)  錯誤

 

 

解決:select user,host from user;   根據結果修改:‘root’@'localhost'  --->  'root'@'%'  即可

 

 

 

 

 

 

 

補充:'%',表示可以遠程登錄,並且是除服務器外的其他任何終端,%表示任意IP都可登錄。
'localhost',表示可以本地登錄,即可以在服務器上登陸,localhost則只允許本地登錄。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM