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

MySQL Root 密碼重置全平台指南(Linux / Windows)

     編輯:MySQL 綜合教學

忘記 MySQL Root 密碼時,透過跳過權限表啟動(--skip-grant-tables)即可免密登入並重置。以下為 Linux/Windows 完整步驟。

Linux 環境

  1. 停止服務:systemctl stop mysqld 或 service mysql stop
  2. 以跳過權限模式啟動(後台):
    mysqld_safe --skip-grant-tables --skip-networking &

    --skip-networking 防止外部連入,安全第一。

  3. 免密登入:mysql -u root
  4. 重置密碼:
    FLUSH PRIVILEGES;  -- 必須先執行,才能修改 grant 表
    ALTER USER 'root'@'localhost' IDENTIFIED BY '新強密碼';
    -- 或 MySQL 5.7 以下
    UPDATE mysql.user SET authentication_string=PASSWORD('新密碼') WHERE User='root' AND Host='localhost';
    FLUSH PRIVILEGES;
  5. 正常重啟:systemctl restart mysqld
  6. 驗證:mysql -u root -p

Windows 環境

  1. 以管理員身分開啟命令提示字元
  2. 停止服務:net stop mysql(或服務管理器)
  3. 跳過權限啟動:
    cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
    mysqld --console --skip-grant-tables --skip-networking

    保持視窗開啟(前台執行)。

  4. 另開視窗免密登入:mysql -u root
  5. 重置密碼(同 Linux 步驟 4)
  6. 關閉 --skip-grant-tables 視窗 (Ctrl+C),正常啟動服務:net start mysql

MySQL 8.0 注意事項

  • 密碼欄位為 authentication_string,不再用 password。
  • 預設驗證插件 caching_sha2_password,舊版驅動可能需指定 mysql_native_password:
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';
  • FLUSH PRIVILEGES; 在 --skip-grant-tables 下必須執行,否則修改不生效。
  • 安全提醒

    • 重置後立即移除 --skip-grant-tables 並重啟。
    • 使用強密碼(≥16 字元,含大小寫數字符號)。
    • 限制 root 只能 localhost 登入,遠程管理用專用帳號。
    • 記錄操作時間、操作人,納入審計日誌。

    標準化流程,讓密碼遺失不再是恐慌源頭。

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