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

MySQL "Access denied for user root@localhost" 密碼修改失敗後修復實戰

     編輯:MySQL 綜合教學

修改 root 密碼後導致無法登入(Access denied ... using password: YES),透過 --skip-grant-tables --defaults-file 重置密碼的 Windows 實戰記錄。

環境與錯誤

  • MySQL 5.1.33 Community, 安裝路徑 C:\Program Files\MySQL\MySQL Server 5.1
  • 錯誤:Access denied for user 'root'@'localhost' using password: YES

修復步驟

  1. 命令列進入 bin 目錄:cd C:\Program Files\MySQL\MySQL Server 5.1\bin
  2. 停止服務,以 --skip-grant-tables 啟動(指定配置檔):
    mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server 5.1\my.ini" --console --skip-grant-tables
    見 ready for connections 即成功
  3. 新開命令列,同目錄下無密碼登入:mysql -u root mysql
  4. 更新密碼並刷新:
    UPDATE user SET Password=PASSWORD('newpassword') WHERE User='root';
    FLUSH PRIVILEGES;
    QUIT;
  5. 關閉第一個命令列(停止 --skip-grant-tables 進程)
  6. 正常啟動服務,新密碼登入驗證

關鍵細節

  • 必須指定 --defaults-file,否則讀取預設配置可能導致資料目錄錯誤
  • --console 讓錯誤輸出到主控台,便於診斷
  • Windows 下 mysqladmin shutdown 需密碼,直接關閉主控台視窗等同強制終止

此法適用於所有因密碼錯誤導致無法登入的 MySQL 版本。

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