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

1、問題描述

環境:MySQL 8.0 + Windowsmysql

因爲密碼錯誤或者其餘緣由致使沒法連上MySQL服務,以下圖:sql

 

2、解決方案

解決該問題的具體步驟以下:測試

1.關閉MySQL服務加密

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

2.跳過權限登陸MySQL服務blog

  看了不少人的博客,寫的都是找到my.ini文件而後在[mysqld]後添加skip-grant-tables,經測試無效。ip

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

3.無密登陸博客

  再打開一個cmd窗口,輸入mysql -u root -p,而後回車,再回車(不輸入密碼),直接無密登陸,以下圖:string

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。

相關文章
相關標籤/搜索