首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL Root 密碼重置完整教學:Windows 平台逐步操作指南

     編輯:MySQL 資料庫相關知識

適用情境

  • 遺忘 root 密碼
  • 初次安裝未設定密碼(空密碼)需強制設定
  • 密碼疑似外洩需緊急輪換

核心原理

以 --init-file 參數啟動 MySQL,執行指定 SQL 檔案修改密碼,繞過權限驗證。

Windows 詳細步驟

1. 停止 MySQL 服務

  • 開啟「服務」(services.msc),找到 MySQL(或 MySQL80 等),點擊「停止」。
  • 若非服務模式,用工作管理員結束 mysqld.exe 進程。

2. 建立初始化 SQL 檔案

用記事本建立 C:\mysql-init.txt,內容僅一行:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewStrongPassword';

注意:MySQL 5.7 以前版本用 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewStrongPassword');。

3. 以初始化檔啟動 MySQL

以管理員身分開啟命令提示字元,執行:

C:\mysql\bin\mysqld --init-file=C:\mysql-init.txt --console

若使用 MySQL Installer 安裝,可能需指定預設配置檔:

"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe"
  --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini"
  --init-file=C:\mysql-init.txt --console

--console 讓輸出顯示在視窗,確認啟動成功後關閉視窗。

4. 清理與正常啟動

  • 刪除 C:\mysql-init.txt(含明文密碼)。
  • 在「服務」中啟動 MySQL 服務,或 net start mysql。

5. 驗證新密碼

mysql -u root -p
# 輸入新密碼登入

常見問題

現象原因與對策
啟動閃退、無輸出路徑錯誤、--defaults-file 指向錯誤、權限不足 → 以管理員執行、核對路徑
密碼仍舊init-file 未被讀取、SQL 語法錯誤 → 檢查錯誤日誌、確認版本對應語法
無法連線服務未啟動、防火牆、bind-address → 啟動服務、檢查 3306 埠

Linux 平台快速參考

systemctl stop mysqld
mysqld_safe --init-file=/tmp/mysql-init.txt &
# 登入驗證後
systemctl restart mysqld

安全建議

  • 密碼複雜度:≥12 字元、大小寫、數字、符號。
  • 禁用 root 遠程登入:UPDATE mysql.user SET host='localhost' WHERE user='root'; FLUSH PRIVILEGES;
  • 定期輪換、使用密碼管理器儲存。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved