【問題記錄】ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)


一、問題描述

環境:MySQL 8.0 + Windows

由於密碼錯誤或者其他原因導致無法連上MySQL服務,如下圖:

 

二、解決方案

解決該問題的具體步驟如下:

1.關閉MySQL服務

  以管理員權限運行cmd程序然后輸入net stop mysql,或者運行services.msc 然后找到MySQL服務並停止運行;

2.跳過權限登錄MySQL服務

  看了很多人的博客,寫的都是找到my.ini文件然后在[mysqld]后添加skip-grant-tables,經測試無效。

  又查到有的說在cmd中運行mysqld –skip-grant-tables,實測在mysql8.0中已失效,現使用mysqld --console --skip-grant-tables --shared-memory,運行結果如下圖:

3.無密登錄

  再打開一個cmd窗口,輸入mysql -u root -p,然后回車,再回車(不輸入密碼),直接無密登錄,如下圖:

4.修改密碼

  修改密碼所用的主要命令如下所示:

把密碼設置為空:UPDATE mysql.user SET authentication_string='' WHERE user='root' and host='localhost';

查看USER表:select host,user,plugin,authentication_string from mysql.user;

以caching_sha2_password加密方式設置密碼修改密碼:ALTER user 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'root';

刷新:flush privileges;

5.重新登錄

  把之前打開的cmd窗口關閉,然后以管理員權限運行cmd程序,再執行net start mysql。在MySQL服務開啟成功之后,輸入mysql -u root -p然后在輸入密碼,成功登錄MySQL。

 


免責聲明!

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



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