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

MySQL 根密碼遺忘?Windows 與 Linux 完整重置教學

     編輯:MySQL 資料庫相關知識

忘記 MySQL root 密碼是資料庫管理常見的困擾。本文整理經實測可行的重置流程,分別說明 Windows 與 Linux 環境下的操作步驟,助您快速恢復資料庫存取權限。

Windows 環境重置步驟

  1. 以系統管理員身分開啟命令提示字元 (CMD)。
  2. 停止 MySQL 服務:
    net stop mysql
  3. 切換至 MySQL 安裝目錄下的 bin 資料夾(預設常見於 C:\Program Files\MySQL\MySQL Server 版本\bin)。
  4. 啟動跳過權限表的 MySQL 執行個體(此視窗會保持執行狀態):
    mysqld --skip-grant-tables
    注意:舊版本可能為 mysqld-nt.exe,新版本統一為 mysqld.exe。
  5. 另開一個命令提示字元視窗,同樣進入 bin 目錄,直接輸入 mysql 進入無密碼模式。
  6. 執行以下 SQL 指令更新密碼(將 new_password 替換為您想設定的新密碼):
    USE mysql;
    UPDATE user SET authentication_string=PASSWORD('new_password') WHERE User='root';
    FLUSH PRIVILEGES;
    EXIT;
    MySQL 5.7 以前版本欄位為 password,5.7 以後改為 authentication_string,建議兩者皆更新以防萬一。
  7. 回到第一個視窗,按 Ctrl+C 停止 mysqld 進程,或透過工作管理員結束 mysqld.exe。
  8. 重新啟動 MySQL 服務:
    net start mysql
  9. 使用新密碼登入驗證:mysql -u root -p。

Linux 環境重置步驟

  1. 終止正在運行的 MySQL 進程:
    killall -TERM mysqld
  2. 以跳過權限模式啟動 MySQL(放入背景執行):
    mysqld_safe --skip-grant-tables &
  3. 無需密碼直接進入 MySQL:mysql。
  4. 更新 root 密碼(同 Windows 步驟 6 的 SQL 指令)。
  5. 退出 MySQL,再次終止 mysqld 進程:killall -TERM mysqld。
  6. 以正常模式啟動 MySQL 服務:systemctl start mysqld(或 service mysql start)。
  7. 使用新密碼登入確認。

常見問題提示

  • 若啟動 mysqld --skip-grant-tables 失敗,請檢查 datadir 權限或錯誤日誌(通常在 /var/log/mysql/error.log)。
  • MySQL 8.0 密碼驗證插件預設為 caching_sha2_password,若舊版客戶端連線失敗,可考慮改用 mysql_native_password:
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';
  • 修改完成後,務必執行 FLUSH PRIVILEGES; 使權限立即生效。

掌握以上流程,下次遇到密碼遺忘即可從容應對。建議平時妥善保管密碼,或使用密碼管理工具避免類似情況發生。

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