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

Windows MySQL Root 忘記密碼重置圖文教程 (mysqld --skip-grant-tables)

     編輯:MySQL 綜合教學

環境

  • OS:Windows 7/10/11
  • MySQL:5.6 / 5.7 / 8.0 (安裝路徑 D:\Program Files\MySQL\MySQL Server 5.6)

步驟詳解

1. 進入 MySQL bin 目錄

D:
cd "D:\Program Files\MySQL\MySQL Server 5.6\bin"

2. 停止服務並以跳過權限模式啟動

net stop mysql
mysqld --console --skip-grant-tables --skip-networking
  • --console:前台運行,輸出日誌到當前視窗 (**不可關閉此視窗**)。
  • --skip-grant-tables:跳過權限表,免密登入。
  • --skip-networking:禁用 TCP/IP,**防止外部入侵**,極重要!

3. 新開 CMD 免密登入

D:
cd "D:\Program Files\MySQL\MySQL Server 5.6\bin"
mysql -uroot -p
# 提示密碼直接按 Enter (空密碼)

4. 修改 Root 密碼

-- MySQL 5.7 / 8.0
FLUSH PRIVILEGES;  -- 必須先執行!
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPass123!';
-- 8.0 若報錯插件問題
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NewStrongPass123!';

-- MySQL 5.6 (舊版)
USE mysql;
UPDATE user SET password = PASSWORD('NewStrongPass123!') WHERE user = 'root';
FLUSH PRIVILEGES;

5. 退出並正常重啟服務

EXIT;
# 回到第一個視窗,Ctrl+C 停止 mysqld
net start mysql
# 或服務管理器啟動

6. 驗證新密碼

mysql -uroot -p'NewStrongPass123!' -e "SELECT VERSION();"

關鍵提醒 ⚠️

  1. 兩個 CMD 視窗:一個跑 mysqld --skip-grant-tables (保持開啟),一個操作 mysql 客戶端。
  2. FLUSH PRIVILEGES 在 skip-grant-tables 下**必須**手動執行,否則修改不持久化。
  3. --skip-networking 保護跳過權限期間的資料庫安全,切勿省略。
  4. 8.0 認證插件 預設 caching_sha2_password,舊客戶端需指定 mysql_native_password。

Linux 同理

systemctl stop mysqld
mysqld_safe --skip-grant-tables --skip-networking &
mysql -uroot
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass';
mysqladmin -uroot -p'NewPass' shutdown
systemctl start mysqld

總結

Windows 下 mysqld --console --skip-grant-tables --skip-networking + 雙視窗操作 + FLUSH PRIVILEGES + ALTER USER,三分鐘搞定 Root 密碼重置,安全又可靠。

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