1. 程式人生 > 實用技巧 >MySql登入時出現了ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password:YES)

MySql登入時出現了ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password:YES)

一星期沒用,開啟MySql登入時居然出現了ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)。
在這裡插入圖片描述

問題描述:

在網上搜索原因說是主要有兩個方面,第一個是拒絕訪問,第二個是密碼輸入錯誤。拒絕訪問一般是my.in檔案配置上出現的問題。這裡主要說的是密碼錯誤的方面。ps(我明明記得我沒有動過我的密碼的,但是。。。。算了,那就重新再改一下密碼吧。)

解決方案:

1、在網上搜到的最常用的方法就是在my.in檔案中加入my.ini裡新增skip-grant-tables。跳過重新輸入密碼的許可權,直接重置。奈何我跟著做之後,出現了這種情況:

在這裡插入圖片描述
說是拒絕訪問,無法正常訪問。
2、對於小白來說,很是絕望。幸好無意中發現了一篇大大的文章。原來是因為mysql版本不匹配出現的問題。我用的是mysql8.跳過密碼的正確方法是:
先關閉服務:輸入:mysqld --console --skip-grant-tables --shared-memory在這裡插入圖片描述
然後重新開啟一個cmd!!,在新開啟的cmd輸入mysql -u root -p
直接跳過在這裡插入圖片描述
在我很開心的重置密碼時,又出現了:在這裡插入圖片描述
嗚嗚,好吧。然後又開始了新一輪的解決辦法。
3、
直接更新一下許可權: flush privileges;
依次輸入:use mysql;
update user set authentication_string=’’ where user=‘root’;
(這裡先把密碼設定為空)
quit;
在這裡插入圖片描述
4、這下就可以關閉之前的那個視窗。在剛剛的那個視窗重新啟動服務。輸入:mysql -u root -p
直接跳過密碼。然後輸入:ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123456’;
更改密碼
quit後測試一下密碼修改成功沒有。
在這裡插入圖片描述

在這裡插入圖片描述
yes!解決了。