萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL root 密碼重置官方標準流程:Windows 與 Unix 環境分步圖解

前提:從未設置密碼 vs 忘記已設置密碼

全新安裝 root 無密碼,直接登入即可設置。若已設置但忘記,需以下流程重置。

Windows 環境標準流程

  1. 管理員登入系統。
  2. 停止 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
    若為 MSI 安裝,需指定配置文件:
    "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. 服務啟動成功後,刪除 C:\mysql-init.txt。
  6. 停止服務,正常模式重啟(服務管理器或命令行)。
  7. 新密碼登入驗證。

Unix/Linux 環境標準流程

  1. 以 root 或 mysqld 運行用戶登入。
  2. 定位 .pid 文件(/var/lib/mysql/、/var/run/mysqld/、/usr/local/mysql/data/),文件名如 hostname.pid。
    發送正常終止信號:
    kill `cat /path/to/hostname.pid`
    (反引號而非單引號,將 PID 代入 kill)。
  3. 創建 ~/mysql-init:
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
  4. 啟動載入初始化文件:
    mysqld_safe --init-file=~/mysql-init &
  5. 確認啟動成功,刪除 ~/mysql-init。
  6. 新密碼登入驗證。

通用備選方案:--skip-grant-tables (安全性較低)

  1. 停止服務,啟動參數添加 --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. 正常重啟服務,新密碼登入。

安全提醒

  • 重置後立即運行 mysql_secure_installation:刪除匿名用戶、禁止 root 遠程登入、刪除 test 庫、刷新權限。
  • 新密碼必須符合強密碼策略。
  • 記錄操作審計日誌,納入變更管理流程。
copyright © 萬盛學電腦網 all rights reserved