MYSQL8.0以上版本遠端連線ROOT密碼報錯及修改
阿新 • • 發佈:2020-12-16
在登入資料庫過程中,如果遇到忘記root密碼時,該如何解決?
一、root密碼無法登入
-
使用管理員許可權開啟命令提示符,在命令列中輸入:
net stop mysql
,停止mysql服務。 -
待mysql服務停止後,輸入:
mysqld --shared-memory --skip-grant-tables
,此時命令提示符視窗處於鎖定狀態,重新以管理員許可權開啟新的命令提示符視窗。 -
在新的命令提示符視窗輸入:
mysql -uroot -p
後回車,提示輸入密碼時直接按回車進入。 -
輸入:
use mysql;
-
輸入:
update user set authentication_string='' where user='root';
注:在mysql8.0以上版本
update mysql.user set password='newpassword' where user='root';
和
update mysql.user set password=PASSWORD('newpassword') where User='root';
這兩條命令已經不起作用了。
-
輸入:
alter user 'root'@'localhost' identified by 'newpassword';
newpassword是要設的新密碼。 -
如果提示設定成功,則輸入:
flush privileges;
-
如果提示不成功,則關閉兩個命令提示符,重新開啟一個管理員許可權的命令提示符視窗,輸入: mysql -uroot -p 後回車,輸入密碼時直接按回車進入(因為此時密碼已被置空)。
-
重複步驟4,步驟6,步驟7。
二、Navicat遠端連線資料庫失敗
- 如果使用Navicat等視覺化介面連線資料庫時連線不成功的情況,如錯誤資訊:2059。
此時需要更改驗證方式,使用命令提示符登入資料庫,輸入:
SELECT Host, User, plugin from user;
檢視驗證型別 ,可以看到root使用者的驗證型別是caching_sha2_password:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
#yourpassword 是想要設定的密碼。
- 提示成功後,
flush privileges;
,再次開啟Navicat連線即可。
以上為mysql 8.0版本以上,忘記root密碼或使用root密碼登入不成功的解決辦法!
原文連結:https://www.cnblogs.com/mzxiaoze/p/10413399.html