ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
基於windows,遇到則記下了,給出解決方法:如下
1:找到配置文件my.ini,之前一直用的是mysql5.5,my.ini就是在MySQL Server5.5下,如圖:
現在我的mysql版本是5.7,則需要在安裝磁盤上勾選隱藏的項目:如圖:
進入ProgramData中-->MySQL-->MySQL Server 5.7,如圖顯示的my文件:(需要注意的是備份下配置文件,防止修改錯誤無法還原)
然后打開my,找到[mysqld],在[mysqld]下輸入“skip-grant-tables”,如圖:
然后保存關閉。
2:win+R輸入“services.msc”進入服務
找到mysql的服務,我的名字是默認“MySQL57”,然后重啟改服務:
3:重啟完成之后運行cmd,輸入mysql -uroot -p回車就行,提示你輸入密碼直接回車就能進入:如圖(直接輸入需要配置好path路徑,如果重啟失敗,記得之前備份的my文件)
4:這時候進入到“mysql”這個庫;如圖:
5:給root用戶設置新密碼:如圖:(新版本的語句是update user set authentication_string=password("123456") where user="root"; 老版本的是update user set password=password("123456") where user="root"; 新版本把password變成了authentication_string,如果在新版本中使用后面的sql則報 Unknown column 'password' in 'field list' 錯,千萬注意,密碼用戶隨意,能記住就行):
6:刷新數據庫,命令:flush privileges;
7:退出mysql,不建議直接退出,使用exit命令即可
8:一切完事之后,再修改之前的my文件,把剛才我們加入的“skip-grant-tables”刪除,保存退出后再重啟mysql服務即可,再次登錄輸入密碼就沒有問題了:
至此,解決了問題,其實也可以不用修改配置文件,可以在登錄的時候直接跳過密碼登錄的,效果是一樣的,在這就不贅述了,有什么不對的歡迎指正