首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 忘記 Root 密碼?Windows/Linux 雙平台重置全攻略

     編輯:MySQL 綜合教學

場景:Root 密碼遺失,急需重新掌控資料庫

無論是接手舊專案、久未登入測試環境,還是單純手滑改密忘記記錄,MySQL Root 密碼遺失都是 DBA 與開發者的常見痛點。本文提供 Windows 與 Linux 兩大平台的標準重置流程,步驟清晰、驗證過可直接上手。

一、Windows 平台:跳過授權表啟動 + 更新 user 表

操作步驟

  1. 停止 MySQL 服務(服務管理器或 net stop mysql)。
  2. 開啟 CMD,切換到 mysql\bin 目錄,啟動跳過授權檢查的臨時實例:
    mysqld --skip-grant-tables
    視窗將卡住不返回提示符,代表成功進入「免密模式」。
  3. 另開一個 CMD 視窗(因第一個被佔用),同樣切到 bin 目錄,免密登入:
    mysql -u root
  4. 更新密碼並刷新權限(MySQL 5.7+ 語法略有不同,下方兩種擇一):
    -- MySQL 5.6 及以前
    USE mysql;
    UPDATE user SET password=PASSWORD('新密碼') WHERE user='root';
    FLUSH PRIVILEGES;
    
    -- MySQL 5.7 / 8.0 (authentication_string 欄位)
    USE mysql;
    UPDATE user SET authentication_string=PASSWORD('新密碼') WHERE user='root';
    FLUSH PRIVILEGES;
  5. 退出 (\q)、關閉第一個 CMD 視窗(Ctrl+C 結束 mysqld 進程)、正常啟動 MySQL 服務,即可用新密碼登入。

實戰紀錄片段(供對照)

C:\>cd D:\MySQL\bin
D:\MySQL\bin>mysqld --skip-grant-tables
...(卡住,開新視窗)...
D:\MySQL\bin>mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET password=PASSWORD('520') WHERE user='root';
mysql> FLUSH PRIVILEGES;
mysql> \q

二、Linux 平台:修改 my.cnf + 重啟 + 更新 + 還原

核心原理

同樣利用 skip-grant-tables 讓 mysqld 啟動時不載入權限表,進而免密登入修改密碼。但 Linux 環境下務必先確保伺服器處於安全狀態(關閉對外端口、停止應用服務、最好在 Console 本地操作甚至拔網線),防止免密期間被惡意竄改。

操作步驟

  1. 編輯 /etc/my.cnf,在 [mysqld] 區段加入:
    skip-grant-tables
  2. 重啟 MySQL:systemctl restart mysqld 或 /etc/init.d/mysqld restart。
  3. 免密登入並修改密碼:
    mysql -u root
    USE mysql;
    UPDATE user SET authentication_string=PASSWORD('新密碼') WHERE user='root';
    FLUSH PRIVILEGES;
    QUIT;
  4. 刪除 my.cnf 中剛加的 skip-grant-tables,重啟 MySQL 服務,驗證新密碼生效。

三、避坑提醒與最佳實踐

  • MySQL 8.0 建議改用 ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';,更符合新版認證機制。
  • 重置後立即檢查 user 表的 host 欄位,確保 root@'%' 或 root@'localhost' 符合實際連線來源。
  • 生產環境嚴禁長期使用 skip-grant-tables,操作完成必須還原配置並重啟。
  • 養成密碼管理器或加密筆記本記錄密碼的習慣,源頭杜絕「忘記密碼」焦慮。

結語

掌握「跳過授權表 → 免密登入 → 更新 user 表 → 刷新權限 → 還原配置」這套通用邏輯,無論 Windows 還是 Linux,MySQL Root 密碼重置都能從容應對。收藏備查,關鍵時刻救急又專業。

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