1. 程式人生 > 其它 >MYSQL8.0以上版本遠端連線ROOT密碼報錯及修改

MYSQL8.0以上版本遠端連線ROOT密碼報錯及修改

技術標籤:mysqllinuxcentos資料庫

在登入資料庫過程中,如果遇到忘記root密碼時,該如何解決?

一、root密碼無法登入

  1. 使用管理員許可權開啟命令提示符,在命令列中輸入: net stop mysql ,停止mysql服務。

  2. 待mysql服務停止後,輸入: mysqld --shared-memory --skip-grant-tables ,此時命令提示符視窗處於鎖定狀態,重新以管理員許可權開啟新的命令提示符視窗。

  3. 在新的命令提示符視窗輸入: mysql -uroot -p 後回車,提示輸入密碼時直接按回車進入。

  4. 輸入: use mysql;

  5. 輸入: update user set authentication_string='' where user='root';

    ,將authentication_string置空。

注:在mysql8.0以上版本

 update mysql.user set password='newpassword' where user='root';

update mysql.user set password=PASSWORD('newpassword') where User='root'; 

這兩條命令已經不起作用了。

  1. 輸入: alter user 'root'@'localhost' identified by 'newpassword'; newpassword是要設的新密碼。

  2. 如果提示設定成功,則輸入: flush privileges;

    。完成後Ctrl+Z退出mysql,使用新密碼重新登入即可。

  3. 如果提示不成功,則關閉兩個命令提示符,重新開啟一個管理員許可權的命令提示符視窗,輸入: mysql -uroot -p 後回車,輸入密碼時直接按回車進入(因為此時密碼已被置空)。

  4. 重複步驟4,步驟6,步驟7。

二、Navicat遠端連線資料庫失敗

  1. 如果使用Navicat等視覺化介面連線資料庫時連線不成功的情況,如錯誤資訊:2059。
    此時需要更改驗證方式,使用命令提示符登入資料庫,輸入:
SELECT Host, User, plugin from user;

檢視驗證型別 ,可以看到root使用者的驗證型別是caching_sha2_password:

在這裡插入圖片描述

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
#yourpassword 是想要設定的密碼。
  1. 提示成功後, flush privileges; ,再次開啟Navicat連線即可。

以上為mysql 8.0版本以上,忘記root密碼或使用root密碼登入不成功的解決辦法!

原文連結:https://www.cnblogs.com/mzxiaoze/p/10413399.html