配置 mysql 密碼 提示 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就可以了


免責聲明!

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



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