首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 5.6 忘記 Root 密碼重置完整步驟(Windows 環境)

     編輯:MySQL 資料庫相關知識

環境確認

# Linux 環境查看版本
rpm -qa | grep MySQL
# MySQL-server-5.6.15-1.el6.x86_64
# MySQL-client-5.6.15-1.el6.x86_64
# ...

Windows 環境重置流程

步驟 1:停止服務並清理殘留進程

  1. 服務管理器停止 MySQL56 服務。
  2. 任務管理器 → 詳細信息 → 結束所有 mysqld.exe、mysql.exe 進程。

步驟 2:以跳過權限模式啟動

# 1. 管理員身份打開 CMD
# 2. 切換至 bin 目錄(根據實際安裝路徑調整)
cd "D:\Program Files\MySQL\MySQL Server 5.6\bin"

# 3. 啟動跳過權限表
mysqld --skip-grant-tables
# 窗口將停留在運行狀態,**保持打開勿關閉**

mysqld --skip-grant-tables 運行截圖

步驟 3:新開窗口無密碼登入並修改密碼

# 新開管理員 CMD,同樣切換到 bin 目錄
cd "D:\Program Files\MySQL\MySQL Server 5.6\bin"

# 無密碼登入
mysql -u root -p
# 提示 Enter password: 直接回車

# 修改密碼(5.6 語法)
UPDATE mysql.user SET password = PASSWORD('NewRootPwd123!') WHERE User = 'root';
FLUSH PRIVILEGES;

mysql 無密碼登入截圖

步驟 4:重啟服務驗證

  1. 關閉 --skip-grant-tables 的 CMD 窗口(Ctrl+C)。
  2. 服務管理器重新啟動 MySQL 服務。
  3. 正常連接驗證:mysql -u root -p'NewRootPwd123!'

Linux 環境快速版

systemctl stop mysqld
mysqld_safe --skip-grant-tables &
mysql -u root
UPDATE mysql.user SET authentication_string = PASSWORD('NewPwd') WHERE User='root';
FLUSH PRIVILEGES;
pkill mysqld
systemctl start mysqld

常見失敗原因

現象原因修正
修改密碼後仍無法登入未執行 FLUSH PRIVILEGES必須刷新權限緩存
--skip-grant-tables 啟動報錯舊進程未殺乾淨/端口佔用taskkill /f /im mysqld.exe
Windows 服務啟動失敗數據目錄權限/配置文件錯誤查看 .err 日志定位具體錯誤

安全加固建議

  1. 密碼複雜度:≥12 位,含大小寫、數字、特殊符號。
  2. 禁止 root 遠程登入:UPDATE mysql.user SET Host='localhost' WHERE User='root'; FLUSH PRIVILEGES;
  3. 啟用 validate_password 插件強制策略。
  4. 定期輪換密碼,記錄審計日志。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved