mysql Access denied for user root @localhost (using password:YES)錯誤


C:\AppServ\MySQL> mysql -u root -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

解決方法:

編輯mysql配置文件my.ini(在mysql的安裝目錄下,我的在D:\phpStudy\MySQL\my.ini),在[mysqld]這個條目下加入 skip-grant-tables 保存退出后重啟mysql

 

1.點擊“開始”->“運行”(快捷鍵Win+R)。

 

2.停止:輸入 net stop mysql

 

3.啟動:輸入 net start mysql  

這個時候會出現mysql服務無法啟動的情況 我的解決方法是:

cmd中輸入命令 “tasklist | findstr "mysql" ” ,用於查找mysql的殘留進程。果不其然,確實存在mysql的殘留進程,難怪一直提示MySQL服務處於正在啟動或者停止的狀態中,此時要做的就是殺死MySQL進程。之后輸入命令 “taskkill /f /t /im mysqld.exe” ,就可以將mysql殘留進程全部殺死了,再次輸入命令“tasklist| findstr "mysql"”,查看是否還留有有其他的mysql殘留進程,如果還有,則繼續殺死,直到完全殺死進程為止,如下圖所示。

當mysql殘留進程全部結束之后,我們就可以正常啟動MySQL服務了,如下圖所示。需要注意的是此時還是要以管理員的身份進入命令行窗口。

繼續重復mysql的停止 ,啟動 的操作

這時候在cmd里面輸入mysql -u root -p就可以不用密碼登錄了,出現 password:的時候直接回車可以進入,不會出現ERROR 1045 (28000),但很多操作都會受限制,因為我們不能grant(沒有權限)。(以下操作的目錄都是在phpStudy\Mysql\bin下完成的

繼續按下面的流程走:

1.進入mysql數據庫:
mysql> use mysql;
Database changed

2.給root用戶設置新密碼: 
mysql> update user set password=password("新密碼") where user="root";
Query OK, 1 rows affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0

3.刷新數據庫
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)  

4.退出mysql:
mysql> quit;
Bye

 

第3步:刷新數據庫時失敗了 但是仍然沒有妨礙最后的成功

 改好之后,再修改一下my.ini這個文件,把我們剛才加入的 "skip-grant-tables"這行刪除,保存退出再重啟mysql就可以了。

最后這一步沒有執行  因為已經可以了

本文參考https://www.cnblogs.com/m97i/p/7586628.html  真的好用謝謝

 


免責聲明!

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



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