萬盛學電腦網

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

Windows 下使用 init-file 重置 MySQL root 密碼

適用場景

  • 忘記 root 密碼
  • 權限表損壞需重建
  • Windows 環境無法使用 --skip-grant-tables 正常啟動

操作步驟

1. 建立初始化 SQL 腳本

在 C 槻建立 mysql-init.txt,內容:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPass123!';
FLUSH PRIVILEGES;

注意:MySQL 5.7 用 UPDATE mysql.user SET authentication_string=PASSWORD('newpass') WHERE user='root';,8.0+ 必須用 ALTER USER。

2. 停止 MySQL 服務

net stop mysql
# 或 服務管理器 (services.msc) 停止

3. 以 init-file 啟動 mysqld

進入 MySQL 安裝目錄 bin 目錄(如 C:\Program Files\MySQL\MySQL Server 8.0\bin):

mysqld --init-file=C:\\mysql-init.txt --console
  • --console 讓輸出顯示在當前視窗,方便觀察
  • 路徑用雙反斜線或正斜線:C:/mysql-init.txt

4. 觀察啟動輸出

看到 ready for connections 表示初始化完成,密碼已重置。

5. 正常啟動服務

Ctrl+C 停止當前 mysqld
net start mysql

6. 驗證新密碼

mysql -u root -p
# 輸入新密碼登入成功

常見問題排查

現象原因解決
報錯 "Can't find file"init-file 路徑錯誤使用絕對路徑,確認副檔名非 .txt.txt
密碼不生效MySQL 版本語法不匹配5.7 用 UPDATE authentication_string,8.0 用 ALTER USER
服務啟動失敗殘留進程佔用埠任務管理器結束所有 mysqld.exe 再試
權限不足非管理員執行 CMD以管理員身分執行命令提示字元

安全建議

  • 重置後立即刪除 mysql-init.txt
  • 新密碼符合複雜度:長度 16+、大小寫、數字、特殊符號
  • 建立專用應用帳號,禁用 root 遠程登入
copyright © 萬盛學電腦網 all rights reserved