問題重現(xiàn):(以下討論范圍僅限Windows環(huán)境):
C:\AppServ\MySQL> mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
(注:如果提示“mysql不是內(nèi)部命令”牺蹄,需要將mysql加入環(huán)境變量,方法詳見: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系統(tǒng)操作如下)
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提示“發(fā)生系統(tǒng)錯誤 5,拒絕訪問”溪猿,操作權(quán)限太低)
解決辦法:
以管理員身份來運行cmd
右鍵點擊“命令提示符”钩杰,選擇“以管理員身份運行”
3、此時在cmd里面輸入mysql -u root -p就可以不用密碼登錄了诊县,出現(xiàn)Enter PassWord: 直接回車進入榜苫,不會出現(xiàn)ERROR 1045 (28000)翎冲,但很多操作都會受限制垂睬,因為我們不能grant(沒有權(quán)限)
4、進入mysql數(shù)據(jù)庫
mysql> use mysql
5抗悍、給root用戶設置新密碼入
mysql> update mysql.user set authentication_string=password('新密碼') where user='root';
(注:記得輸入分號“;”)
6驹饺、刷新數(shù)據(jù)庫
mysql> flush privileges;
(注:記得輸入分號“;”)
7、退出mysql
mysql> quit
8缴渊、改好之后赏壹,再修改一下my.ini這個文件,把我們剛才加入的"skip-grant-tables"這行刪除衔沼,保存退出再重啟mysql就可以了