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

MySQL Root 密碼重置完整教程:Windows 與 Linux 環境詳解

     編輯:MySQL 資料庫相關知識

前言

若從未設定 root 密碼,MySQL 允許無密碼登入,但強烈建議為所有帳號設定密碼。若遺忘 root 密碼,可透過跳過授權表機制重置。本文分別說明 Windows 與 Linux 平台的操作步驟,並提供通用的 --skip-grant-tables 替代方案。

Windows 平台重置步驟

  1. 以系統管理員身分登入。
  2. 停止 MySQL 服務:服務管理器 → 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
    若使用安裝精靈,需指定 --defaults-file:
    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
  5. 服務啟動成功後,刪除初始化檔,正常重啟 MySQL 服務。
  6. 使用新密碼連線驗證。

Linux/Unix 平台重置步驟

  1. 以 root 或 MySQL 服務運行用戶身分登入。
  2. 找到 .pid 檔(常見路徑:/var/lib/mysql/、/var/run/mysqld/、/usr/local/mysql/data/),發送 kill(非 kill -9)停止服務:
    kill `cat /path/to/host_name.pid`
  3. 建立初始化檔(如 ~/mysql-init),內容同 Windows。
  4. 以 --init-file 參數啟動:
    mysqld_safe --init-file=~/mysql-init &
  5. 啟動成功後刪除初始化檔,正常重啟服務,新密碼生效。

通用替代方案(較不安全)

停止 MySQL,以 --skip-grant-tables --user=root 重啟(Windows 可省略 --user=root)。連線後執行:

mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
mysql> FLUSH PRIVILEGES;

此法繞過權限驗證,僅建議在無法使用 --init-file 時採用。

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