萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 忘記 root 密碼?5 步跳過授權表緊急重置(含圖解步驟)

適用場景

  • root 密碼遺失、無其他超級賬號
  • Windows/Linux 通用原理,操作略有差異

核心原理

啟動參數 --skip-grant-tables 讓 mysqld 不載入權限表,任何用戶無密碼即可登入並擁有所有權限,從而修改 root 密碼。

標準化操作流程

  1. 停止服務:
    • Windows:任務管理器結束 mysqld.exe / net stop mysql
    • Linux:systemctl stop mysqld 或 service mysql stop
  2. 跳過授權啟動:
    • Windows:mysqld --skip-grant-tables --console
    • Linux:mysqld_safe --skip-grant-tables &
  3. 無密碼登入修改密碼:
    mysql -u root
    mysql> USE mysql;
    mysql> UPDATE user SET authentication_string=PASSWORD('NewStrongPass!') WHERE user='root';
    mysql> FLUSH PRIVILEGES;
    mysql> EXIT;
    

    MySQL 5.7+ 字段為 authentication_string,5.6 為 password

  4. 關閉跳過授權的實例:Ctrl+C 或 kill 進程
  5. 正常啟動驗證:mysql -u root -p 輸入新密碼登入成功

安全收尾(必做)

  1. 檢查是否有殘留的 --skip-grant-tables 進程
  2. 確認 mysql.user 表中 root 只允許 localhost/127.0.0.1 登入
  3. 若生產環境,建議同步修改應用配置文件中的密碼

圖解步驟參考

結束進程 啟動skip-grant-tables 登入修改密碼 關閉實例 正常啟動驗證

copyright © 萬盛學電腦網 all rights reserved