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

Windows 下 MySQL 忘記 Root 密碼三種重置方法圖文教程

     編輯:MySQL 綜合教學

Windows 下 MySQL 忘記 Root 密碼三種重置方法圖文教程

適用於 MySQL 5.0 ~ 8.0 版本,三種方案覆蓋不同場景:跳過授權表啟動、初始化檔案法、MySQL 5.1+ 專用控制台模式。操作前請先備份 data 目錄。

方法一:跳過授權表啟動(通用、最常用)

  1. 停止服務:net stop mysql(或服務名 mysql57)。
  2. 開啟 CMD 切換到 bin 目錄,啟動跳過授權表模式:
    mysqld --skip-grant-tables
  3. 另開一個 CMD,無密碼直連:
    mysql -u root
  4. 執行修改密碼:
    USE mysql;
    UPDATE user SET authentication_string=PASSWORD('NewPass123!') WHERE User='root';
    FLUSH PRIVILEGES;
    EXIT;

    註:MySQL 5.7+ 密碼欄位為 authentication_string,5.6 及舊版為 password。

  5. 結束 mysqld 進程(任務管理器或 Ctrl+C),正常啟動服務:
    net start mysql

方法二:初始化檔案法(適合不想開兩個視窗)

  1. 在 MySQL 安裝目錄建立 reset_pwd.txt,內容:
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NewPass123!');
  2. 停止服務:net stop mysql
  3. 啟動並指定初始化檔:
    mysqld --init-file=D:\MySQL\mysql-5.7.xx\reset_pwd.txt
  4. 看到啟動成功訊息後,Ctrl+C 停止,正常啟動服務。

方法三:MySQL 5.1+ 專用 --console --skip-grant-tables 模式

  1. 停止服務:net stop mysql
  2. CMD 1:指定配置檔啟動跳過授權表:
    mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server 5.7\my.ini" --console --skip-grant-tables
  3. CMD 2:連線無需密碼:
    mysql -u root -p(提示密碼直接 Enter)
  4. 修改密碼:
    USE mysql;
    UPDATE user SET authentication_string=PASSWORD('NewPass123!') WHERE User='root';
    FLUSH PRIVILEGES;
    QUIT;
  5. 關閉 CMD 1,正常啟動服務:net start mysql

MySQL 8.0 額外注意事項

  • 密碼驗證插件預設為 caching_sha2_password,舊版客戶端可能連不上。重置後建議同步修改插件:
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NewPass123!';
  • PASSWORD() 函數在 8.0 已移除,必須用 ALTER USER 或 SET PASSWORD 語法。

驗證密碼重置成功

mysql -u root -p'NewPass123!' -e "SELECT USER(), VERSION();"

預防建議

  • 使用密碼管理工具儲存 Root 密碼。
  • 建立專用業務帳號,Root 僅供 DBA 緊急維護。
  • 啟用 skip-name-resolve 減少 DNS 延遲,並配合 bind-address=127.0.0.1 限制本機存取。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved