在 Windows 環境下管理 MySQL 資料庫時,若不慎遺忘 root 使用者密碼,無法正常登入進行管理操作,此時需要透過跳過權限驗證的方式重置密碼。本文提供一套經實測有效的雙命令視窗操作流程,適用於 MySQL 5.5 版本,其他版本亦可參考調整路徑。
開啟第一個命令提示字元視窗(建議以系統管理員身分執行),依序輸入以下指令:
cd D:\Program Files\MySQL\MySQL Server 5.5\bin net stop mysql mysqld --skip-grant-tables
說明:
--skip-grant-tables 參數啟動服務,此模式下將跳過權限檢查,允許無密碼登入執行後視窗會保持運行狀態,請勿關閉。
開啟第二個命令提示字元視窗,同樣切換至 bin 目錄:
cd D:\Program Files\MySQL\MySQL Server 5.5\bin mysql -uroot -p
此時直接按 Enter 鍵跳過密碼輸入(因已跳過授權),成功進入 MySQL 互動模式後,依序執行以下 SQL 指令:
USE mysql;
UPDATE user SET password=PASSWORD("新密碼") WHERE User="root";
FLUSH PRIVILEGES;
EXIT;
關鍵點:
PASSWORD() 函數會將明文加密儲存FLUSH PRIVILEGES 強制重新載入授權表,使修改即時生效回到第一個視窗,按 Ctrl+C 停止跳過授權模式的服務,然後在第二個視窗輸入:
net start mysql
即可恢復正常 MySQL 服務,使用新密碼登入驗證。
password 欄位已更名為 authentication_string,SQL 需相應調整mysql 系統資料庫