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

MySQL Root 密碼重置全平台指南:Linux 與 Windows 通用方案

     編輯:MySQL 資料庫相關知識

適用場景

  • 遺忘 root 密碼
  • 全新安裝後預設空密碼需設定
  • 安全審計要求定期輪換

核心原理

跳過權限表驗證(--skip-grant-tables)啟動 MySQL,以無密碼 root 身分登入,修改 mysql.user 表密碼欄位,刷新權限,重啟正常模式。

Linux 環境操作步驟

  1. 停止服務:
    systemctl stop mysqld
    # 或
    service mysql stop
  2. 啟動跳過權限模式:
    mysqld_safe --skip-grant-tables --skip-networking &
    # --skip-networking 防止外部連入,僅本機操作
  3. 無密碼登入修改密碼:
    mysql -u root
    # 進入 mysql> 提示符後執行:
    USE mysql;
    -- MySQL 5.7.6+ / 8.0
    UPDATE user SET authentication_string=PASSWORD('NewPass123!') WHERE User='root' AND Host='localhost';
    -- MySQL 5.7.5 及更早
    UPDATE user SET password=PASSWORD('NewPass123!') WHERE User='root' AND Host='localhost';
    FLUSH PRIVILEGES;
    EXIT;
  4. 重啟正常服務:
    pkill mysqld
    systemctl start mysqld
  5. 驗證新密碼:
    mysql -u root -p'NewPass123!' -e "SELECT VERSION();"

Windows 環境操作步驟

  1. 以管理員身分開啟 CMD / PowerShell。
  2. 停止服務:net stop mysql(或 net stop mysql80 視服務名)。
  3. 切換至安裝目錄 bin 資料夾(如 C:\Program Files\MySQL\MySQL Server 8.0\bin)。
  4. 啟動跳過權限:
    mysqld --skip-grant-tables --skip-networking
    (視窗保持開啟,勿關閉)
  5. 另開一個 CMD 視窗,執行:
    mysql -u root
    # 同 Linux 步驟 3 修改密碼
  6. 關閉第一個視窗(Ctrl+C 停止 mysqld),重新啟動服務:net start mysql。
  7. 驗證新密碼登入。

MySQL 8.0 特別注意

  • 密碼欄位為 authentication_string,不再使用 password。
  • 預設驗證插件為 caching_sha2_password,若舊版客戶端連線失敗,可改用 mysql_native_password:
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NewPass123!';

安全建議

  • 密碼複雜度:≥12 字元,含大小寫、數字、特殊符號。
  • 禁止 root 遠端登入:UPDATE user SET Host='localhost' WHERE User='root';
  • 建立專用應用帳號,最小權限原則。

掌握此流程,密碼遺忘不再是障礙,安全輪換更從容。

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