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

MySQL root 密碼重置雙方案:替換授權表法與 skip-grant-tables 標準法

     編輯:MySQL 資料庫相關知識

遺失 root 密碼時的兩大經典恢復方案,步驟精簡、跨平台通用。

方案一:替換授權表 (暴力、快速、風險較高)

  1. 下載同版本 MySQL 原始碼包。
  2. 重命名現有 data/mysql → data/oldmysql。
  3. 複製原始碼包 data/mysql → data/mysql。
  4. 重啟 MySQL,root 空密碼登入。
  5. 立即修改密碼、檢查 oldmysql 異常、驗證備份完整性。

方案二:--skip-grant-tables (官方推薦、安全)

  1. 停止服務:
    kill `cat /datadir/hostname.pid`   # Linux
    # 或
    killall -TERM mysqld
  2. 啟動跳過權限模式:
    mysqld_safe --skip-grant-tables &
    # 或
    safe_mysqld --skip-grant-tables &
  3. 免密登入修改密碼:
    mysql -h hostname mysql
    UPDATE user SET Password=PASSWORD('new_pass') WHERE User='root';
    FLUSH PRIVILEGES;
    # 或
    mysqladmin -u root flush-privileges password "new_pass"
  4. 重新載入權限並正常重啟:
    mysqladmin -h hostname flush-privileges
    # 或 SQL
    FLUSH PRIVILEGES;
    # 正常重啟 mysqld

關鍵提醒

  • 方案二為標準流程,生產環境首選。
  • 修改密碼後必須執行 FLUSH PRIVILEGES。
  • MySQL 5.7+ Password 欄位改為 authentication_string,SQL 需相應調整。
  • 建立密碼管理規範:密碼管理器存儲、定期輪換、離職即撤銷。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved