MySQL 忘記 root 密碼怎麼辦?Windows 完整重置方法(2026|ERROR 1045 修復教學)

MySQL 忘記 root 密碼怎麼辦?Windows 完整重置方法(2026|ERROR 1045 修復教學)
重要提醒
本教學涉及 MySQL 資料庫 root 密碼重置與系統權限操作,請確認你擁有該伺服器或資料庫的合法管理權限後再執行。

錯誤操作可能導致服務中斷或無法連線,建議先備份資料,並避免在正式生產環境隨意使用 skip-grant-tables 模式。

本內容僅供系統管理與故障排除用途使用。

MySQL 忘記 root 密碼是 Windows 開發環境中最常見的問題之一,尤其在 XAMPP、MySQL Installer 或 VPS 伺服器中,經常會遇到 ERROR 1045 無法登入的情況。本篇將以實務操作方式,完整教你如何在 Windows 中重置 MySQL root 密碼,包含安全模式啟動、skip-grant-tables 使用方式,以及恢復正常服務的完整流程。

✔ 案例一:XAMPP 使用者忘記 MySQL root 密碼(完整流程)

在 XAMPP 環境中,MySQL 由 Control Panel 管理。當忘記 root 密碼並出現 ERROR 1045 時,必須透過安全模式重置,而不是 phpMyAdmin。

📌 Step 1:停止 MySQL 服務


# XAMPP 直接點 Stop MySQL
# 或 Windows CMD
net stop mysql

📌 Step 2:進入 MySQL 目錄


C:\xampp\mysql\bin

cd C:\xampp\mysql\bin

📌 Step 3:啟動 skip-grant-tables(關鍵)


mysqld --skip-grant-tables --skip-networking

⚠ 此視窗會卡住是正常的,代表 MySQL 已進入免密碼模式。

📌 Step 4:開啟新 CMD 登入


mysql -u root

📌 Step 5:重設 root 密碼


ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
FLUSH PRIVILEGES;

📌 Step 6:重啟 MySQL


net start mysql

✔ 案例二:MySQL Installer 無法登入 root(ERROR 1045)

Windows MySQL Installer 安裝後若出現 ERROR 1045,通常是 root 密碼未設定或遺失。

📌 Step 1:停止服務


net stop mysql80

📌 Step 2:啟動安全模式


mysqld --skip-grant-tables --skip-networking

📌 Step 3:登入 MySQL


mysql -u root

📌 Step 4:重設密碼


ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
FLUSH PRIVILEGES;

📌 Step 5:重新啟動


net start mysql80

✔ 案例三:MySQL Workbench 顯示 ERROR 1045

Workbench 顯示 ERROR 1045 時,問題通常在 MySQL Server,而不是 Workbench 本身。代表 root 密碼錯誤或權限失效,需要直接進行 CLI 重置。

✔ 案例四:Windows Server / VPS MySQL 無法登入

在 Windows Server 或 VPS 環境中,MySQL 以服務方式運行。可透過以下方式修復:


net stop mysql80
mysqld --skip-grant-tables --skip-networking

修改完成後再重新啟動:


net start mysql80

🔒 重點安全提醒

skip-grant-tables 僅能用於維修用途,會暫時關閉 MySQL 權限驗證機制,完成密碼重置後必須立即關閉並恢復正常模式,避免安全風險。

FAQ 常見問題

MySQL 忘記 root 密碼怎麼辦?

可以透過 skip-grant-tables 安全模式進入 MySQL,跳過權限驗證後再使用 ALTER USER 重新設定 root 密碼。此方法適用於 Windows、XAMPP 與 MySQL Installer,且不會影響資料庫內容。

ERROR 1045 是什麼意思?

ERROR 1045 代表 MySQL 拒絕登入請求,通常原因是 root 密碼錯誤或帳號驗證失敗,並不代表資料庫損壞。最常見解法就是重新設定 root 密碼。

skip-grant-tables 可以長期使用嗎?

不可以。skip-grant-tables 會關閉 MySQL 權限驗證機制,只能用於緊急維修或密碼重置。使用完成後必須立即恢復正常模式,否則會有嚴重安全風險。

net stop mysql80 一定會成功嗎?

不一定。只有當 MySQL 服務名稱真的叫 mysql80 時才會成功。如果服務名稱不同,需先使用 net start 或 sc query 查詢正確服務名稱。

XAMPP 忘記 MySQL 密碼可以用這方法嗎?

可以。XAMPP 使用的 MySQL 與標準 MySQL 核心相同,只要先停止 XAMPP 的 MySQL 服務,再使用 skip-grant-tables 模式即可重置 root 密碼。

重置 MySQL root 密碼會不會影響資料庫資料?

不會。重置 root 密碼只會修改帳號驗證資訊,不會影響資料表、資料庫內容或既有資料結構。

Workbench 顯示 ERROR 1045 怎麼解?

Workbench 本身沒有問題,ERROR 1045 通常是 MySQL Server 的 root 密碼錯誤。需直接進入 MySQL CLI 使用安全模式重置密碼,而不是修改 Workbench 設定。

    PAGE TOP