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

MySQL 忘記 Root 密碼?三步驟透過 Skip-Grant-Tables 重置密碼

     編輯:MySQL 綜合教學

情境:無法登入 MySQL 怎麼辦?

當遺忘 MySQL Root 密碼導致無法登入時,可利用 skip-grant-tables 略過權限驗證,進入資料庫直接修改 user 表重置密碼。以下為 Windows 環境實測步驟。

操作步驟

步驟 1:備份並修改設定檔

  1. 備份 my.ini(通常位於 MySQL 安裝目錄)。
  2. 以文字編輯器開啟 my.ini,在 [mysqld] 區塊下新增:
    skip-grant-tables
  3. 儲存並關閉檔案。

步驟 2:重啟 MySQL 服務

以系統管理員身分開啟「服務」,重新啟動 MySQL 服務,使設定生效。

步驟 3:無密碼登入並更新密碼

  1. 開啟命令提示字元,切換至 MySQL bin 目錄(例:d:\software\mysql\MySQL Server 5.6\bin):
    d:
    cd "d:\software\mysql\MySQL Server 5.6\bin"
  2. 直接登入(無需密碼):
    mysql -u root -p
    Enter password: <直接按 Enter>
  3. 執行 SQL 重置密碼:
    show databases;
    use mysql;
    update mysql.user set password=PASSWORD('你的新密碼') where User='root';
    flush privileges;
    quit

步驟 4:還原設定並重啟

  1. 編輯 my.ini,移除或註解掉 skip-grant-tables。
  2. 重啟 MySQL 服務。
  3. 使用新密碼正常登入驗證。

注意事項

  • skip-grant-tables 會讓資料庫處於無認證狀態,務必在完成密碼重置後立即移除並重啟服務。
  • MySQL 5.7 以上版本 password 欄位改為 authentication_string,語法需調整為:
    update mysql.user set authentication_string=PASSWORD('新密碼') where User='root';
  • 執行 flush privileges; 才能讓修改即時生效。

小結

此法適用於所有作業系統,核心邏輯相同:修改設定略過授權 → 免密登入 → 更新密碼表 → 還原設定。建議平時妥善保管密碼,或使用密碼管理工具避免遺忘。

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