萬盛學電腦網

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

Windows 忘記 MySQL root 密碼重置圖文教程

適用場景

  • Windows 系統,MySQL 5.x / 8.x。
  • 擁有伺服器管理員權限(可停啟服務、存取檔案系統)。

步驟詳解

  1. 停止 MySQL 服務
    net stop mysql
    # 或 services.msc 圖形介面停止
    
  2. 以跳過授權表模式啟動 mysqld
    
    # 方式 A:命令列直接啟動(前台阻塞,需另開視窗)
    "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe" --skip-grant-tables --console
    
    # 方式 B:修改 my.ini 永久生效(推薦,避免佔用視窗)
    # 在 [mysqld] 區塊新增:skip-grant-tables
    # 然後 net start mysql
    
  3. 無密碼登入並修改密碼
    
    mysql -uroot
    -- 進入 mysql> 提示符後
    USE mysql;
    
    -- MySQL 5.7 / 8.0
    UPDATE user SET authentication_string = '' WHERE User = 'root';
    FLUSH PRIVILEGES;
    
    -- 8.0 還需更新 plugin(caching_sha2_password)
    UPDATE user SET plugin = 'mysql_native_password' WHERE User = 'root';
    FLUSH PRIVILEGES;
    
    -- 設定新密碼
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPass123';
    -- 或 5.7 語法
    -- SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NewStrongPass123');
    
  4. 恢復正常模式
    • 若用方式 A:Ctrl+C 停止前台 mysqld,任務管理器結束殘留進程,net start mysql。
    • 若用方式 B:編輯 my.ini 註釋掉 skip-grant-tables,net stop mysql && net start mysql。
  5. 驗證新密碼
    
    mysql -uroot -pNewStrongPass123 -e "SELECT VERSION();"
    

MySQL 8.0 特別注意

  • 預設驗證插件 caching_sha2_password,舊驅動可能不支援。重置密碼時同步改為 mysql_native_password 或升級驅動。
  • PASSWORD() 函數已移除,必須用 ALTER USER ... IDENTIFIED BY。

安全建議

  1. 重置後立即建立業務專用帳號,回收 root 遠端登入權限:REVOKE ALL PRIVILEGES ON *.* FROM 'root'@'%';
  2. 啟用 validate_password 元件強制密碼複雜度。
  3. 記錄操作日誌,定期輪換密碼。
copyright © 萬盛學電腦網 all rights reserved