Navicat連線mysql報錯【1045 - Access denied for user 'root'@'localhost'(using password: YES)】
win10使用Navicat連線mysql8.0時,出現報錯【1045 - Access denied for user 'root'@'localhost'(using password: YES)】
或者,命令列連線mysql時,報錯【ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)】
解決方法:
1、先找到mysql安裝目錄下的my-default.ini或者my.ini檔案,如 E:\Program Files\mysql-8.0.11-winx64\my-default.ini
2、使用記事本開啟ini檔案,找到[mysqld],在下方新增skip_grant_tables,該語句代表登入mysql時跳過輸入密碼的操作,忽略登入檢查
3、重啟資料庫服務:管理員身份開啟命令列cmd,非管理員身份重啟mysql會報錯
①停止伺服器,命令列輸入
net stop mysql
回車
②啟動伺服器,命令列輸入
net start mysql
回車
4、密碼重置,命令列輸入
mysql -u root -p
敲擊回車,顯示輸入密碼password,無需輸入密碼,再次敲擊回車,進入mysql,命令列顯示【mysql>】
# 將資料庫切換至mysql庫
mysql> USE mysql
回車
# 修改密碼
mysql> UPDATE user SET password=PASSWORD(‘newpasswd’)WHERE user=’root’
回車
# 重新整理MySQL許可權相關的表
mysql> flush privileges
mysql> exit
退出資料庫
5、修改ini檔案,再次開啟my-default.ini或者my.ini檔案,註釋掉skip_grant_tables(在skip_grant_tables前面加一個 # 註釋),儲存並退出
6、重啟資料庫服務