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

MySQL Root 密碼重置完整指南:Windows 與 Linux 平台操作步驟

     編輯:MySQL 資料庫相關知識

遺忘 MySQL root 密碼是常見維運情境。本文提供 Windows 與 Linux 兩大平台的標準重置流程,以及通用的備選方案。

Windows 平台重置步驟

  1. 以系統管理員身分登入
  2. 停止 MySQL 服務:
    • 服務管理器:services.msc → 找到 MySQL → 停止
    • 或工作管理員強制結束進程
  3. 建立初始化檔 C:\mysql-init.txt,內容單行:
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
  4. 以初始化檔啟動伺服器:
    C:\mysql\bin\mysqld-nt --init-file=C:\mysql-init.txt

    若使用安裝精靈,需指定預設檔:

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

    可從服務屬性的「執行檔路徑」找到正確的 --defaults-file 參數。

  5. 伺服器啟動成功後,刪除 mysql-init.txt
  6. 停止伺服器,以正常模式重啟(服務管理器或命令列)
  7. 使用新密碼連線驗證

Linux/Unix 平台重置步驟

  1. 以 root 或 mysqld 執行身分登入
  2. 尋找 .pid 檔(常見路徑:/var/lib/mysql/、/var/run/mysqld/、/usr/local/mysql/data/,檔名通常為 mysqld.pid 或 hostname.pid)
  3. 正常停止伺服器(勿用 kill -9):
    kill `cat /path/to/mysqld.pid`

    注意:反引號 ` 非單引號

  4. 建立初始化檔 ~/mysql-init,內容同 Windows
  5. 以初始化檔啟動:
    mysqld_safe --init-file=~/mysql-init &
  6. 啟動成功後刪除 ~/mysql-init
  7. 使用新密碼連線驗證

通用備選方案(較不安全)

  1. 停止 mysqld,以 --skip-grant-tables --user=root 重啟(Windows 可省略 --user=root)
  2. 無密碼連線:mysql -u root
  3. 執行更新:
    UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
    FLUSH PRIVILEGES;
  4. 重啟正常模式,新密碼生效

安全性提醒

  • --skip-grant-tables 會跳過所有權限檢查,僅限內網維護窗口使用
  • 重置完成後務必移除初始化檔,避免密碼洩露
  • 生產環境建議使用密碼管理工具定期輪換

掌握標準重置流程,能在緊急情況下快速恢復資料庫存取權限。

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