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

Windows 環境 MySQL 忘記 root 密碼重置完整步驟 (含 --skip-grant-tables 模式)

     編輯:MySQL 資料庫相關知識

Windows 下 MySQL 5.1/5.5/5.6/5.7/8.0 通用密碼重置流程:停止服務 → --skip-grant-tables 跳過權限啟動 → 免密登入 → 更新 mysql.user 表 → 刷新權限 → 正常啟動驗證。

步驟詳解

  1. 停止 MySQL 服務
    net stop mysql 或「服務」管理單元停止。
  2. 開啟 CMD 1 (管理員),跳過權限啟動
    cd "C:\Program Files\MySQL\MySQL Server 5.x\bin"
    mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server 5.x\my.ini" --console --skip-grant-tables
    視窗保持開啟,勿關閉。
  3. 開啟 CMD 2,免密登入並改密
    mysql -uroot -p → 直接 Enter
    USE mysql;
    UPDATE user SET authentication_string=PASSWORD('NewP@ssw0rd') WHERE User='root';
    MySQL 5.7+ 欄位為 authentication_string,5.6 為 Password。
    FLUSH PRIVILEGES;
    QUIT;
  4. 關閉 CMD 1 (Ctrl+C),正常啟動服務
    net start mysql
  5. 驗證新密碼
    mysql -uroot -pNewP@ssw0rd

版本差異對照

版本密碼欄位PASSWORD() 函數備註
5.6Password支援
5.7authentication_string支援5.7.6+ 建議 ALTER USER 'root'@'localhost' IDENTIFIED BY 'pwd';
8.0authentication_string移除必須用 ALTER USER 或 SET PASSWORD

MySQL 8.0 專用重置 (無 PASSWORD())


-- 在 skip-grant-tables 模式下
FLUSH PRIVILEGES;  -- 必須先執行,否無法修改 user 表
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewP@ssw0rd';
FLUSH PRIVILEGES;

常見失敗原因

  • 未以管理員執行 CMD → 拒絕存取。
  • --defaults-file 路徑錯誤或含空格未加引號。
  • CMD 1 關閉導致 --skip-grant-tables 進程結束。
  • 未執行 FLUSH PRIVILEGES 導致修改不生效。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved