1. 程式人生 > >執行JavaWeb專案報錯Access denied for user 'root'@'localhost' (using password: YES)

執行JavaWeb專案報錯Access denied for user 'root'@'localhost' (using password: YES)

問題重現:(以下討論範圍僅限Windows環境):  

C:\AppServ\MySQL> mysql -u root -p    

Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 

(注:如果提示“mysql不是內部命令”,需要將mysql加入環境變數,方法詳見:https://jingyan.baidu.com/article/e4d08ffdd5f6670fd2f60d2f.html)

解決辦法:

1、編輯mysql配置檔案my.ini(5.6在C:\ProgramData\MySQL\MySQL Server 5.6路徑下)

在[mysqld]這個條目下加入 skip-grant-tables 儲存後退出

(注:ProgramData為隱藏資料夾,需要設定顯示資料夾,win10系統操作如下)

2、重啟mysql

重啟:

(1)點選“開始”->“執行”(快捷鍵Win+R)->輸入“cmd”

(2)啟動:輸入 net stop mysql

(3)停止:輸入 net start mysql

(注:net stop mysql提示“服務名無效”,服務名不正確)

解決辦法:

1、win+R開啟執行視窗,輸入services.msc

2.在其中檢視mysql的服務名,我的是MySQL56

(注:net stop mysql提示“發生系統錯誤 5,拒絕訪問”,操作許可權太低)

解決辦法:

以管理員身份來執行cmd

右鍵點選“命令提示符”,選擇“以管理員身份執行”

 

 3、此時在cmd裡面輸入mysql -u root -p就可以不用密碼登入了,出現Enter PassWord: 直接回車進入,不會出現ERROR 1045 (28000),但很多操作都會受限制,因為我們不能grant(沒有許可權)

4、進入mysql資料庫

mysql> use mysql

 

5、給root使用者設定新密碼入

mysql> update user set password=password("新密碼") where user="root";

(注:記得輸入分號“;”)

6、重新整理資料庫

mysql> flush privileges;

(注:記得輸入分號“;”)

7、退出mysql

mysql> quit

8、改好之後,再修改一下my.ini這個檔案,把我們剛才加入的"skip-grant-tables"這行刪除,儲存退出再重啟mysql就可以了