首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Windows 環境下 MySQL root 密碼遺忘的完整解決方案

     編輯:MySQL 綜合教學

Windows 環境下 MySQL root 密碼遺忘的完整解決方案

在 Windows 系統中管理 MySQL 資料庫時,root 帳號密碼遺忘是常見的運維難題。本文提供兩種經實測有效的重置方案,涵蓋 MySQL 5.5 及更新版本的操作步驟,幫助您快速恢復資料庫存取權限。

方案一:雙命令視窗跳過權限表法(適用於 MySQL 5.5+)

此方法利用 --skip-grant-tables 參數啟動服務,暫時繞過權限驗證,再透過另一視窗修改密碼。

步驟 1:以管理員身分開啟第一個命令提示字元

  1. 切換至 MySQL 安裝目錄的 bin 資料夾(請依實際路徑調整):
cd D:\Program Files\MySQL\MySQL Server 5.5\bin
  1. 停止 MySQL 服務:
net stop mysql
  1. 以跳過權限表模式啟動 MySQL 服務(此視窗需保持開啟):
mysqld --skip-grant-tables

步驟 2:開啟第二個命令提示字元修改密碼

  1. 同樣切換至 bin 目錄:
cd D:\Program Files\MySQL\MySQL Server 5.5\bin
  1. 以 root 身分免密登入:
mysql -uroot -p

提示輸入密碼時直接按 Enter 鍵。

  1. 執行 SQL 更新密碼(將「新密碼」替換為您想設定的密碼):
UPDATE mysql.user SET authentication_string=PASSWORD('新密碼') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;

注意:MySQL 5.7+ 版本密碼欄位為 authentication_string,舊版為 password。

  1. 回到第一個視窗,按 Ctrl+C 停止服務,然後正常啟動:
net start mysql

方案二:單視窗流程簡化版(適用於舊版 MySQL)

若您使用的是 MySQL 5.1 或更早版本,可嘗試此傳統流程:

  1. 開啟服務管理器 (Win+R 輸入 services.msc) 停止 MySQL 服務。
  2. 以管理員身分開啟 CMD,進入 bin 目錄執行:
mysqld-nt --skip-grant-tables
  1. 另開一個 CMD 視窗,免密登入:
mysql -u root
  1. 修改密碼並刷新權限:
UPDATE mysql.user SET password=PASSWORD('新密碼') WHERE User='root';
FLUSH PRIVILEGES;
QUIT;
  1. 重啟電腦或重新啟動 MySQL 服務即可生效。

常見問題與注意事項

  • 路徑差異:請確認實際安裝路徑,常見於 C:\Program Files\MySQL\MySQL Server X.X\bin 或自訂目錄。
  • 權限不足:必須以「系統管理員身分執行」命令提示字元,否則 net stop/start 會失敗。
  • 版本差異:MySQL 5.7 之前使用 password 欄位,5.7 之後改為 authentication_string;8.0 更建議使用 ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼'; 語法。
  • 安全提醒:完成重置後,務必移除 --skip-grant-tables 參數並正常啟動服務,避免資料庫處於無保護狀態。

Linux/Unix 系統快速參考

非 Windows 環境下,核心邏輯相同,指令微調如下:

# 1. 停止服務
systemctl stop mysqld
# 2. 跳過權限啟動
mysqld_safe --skip-grant-tables &
# 3. 免密登入修改密碼
mysql -u root
UPDATE mysql.user SET authentication_string=PASSWORD('新密碼') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;
# 4. 正常重啟
systemctl restart mysqld

掌握上述方法,即可在遺忘 root 密碼時從容應對,將業務中斷時間降至最低。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved