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

MySQL 5.6 忘記 Root 密碼重置圖文教程:Windows 環境 skip-grant-tables 實戰操作

     編輯:MySQL 資料庫相關知識

Windows 環境下 MySQL 5.6 忘記 Root 密碼的經典解決方案:通過 --skip-grant-tables 跳過權限驗證,免密登入修改 mysql.user 表 password 列。本文提供圖文並茂的步驟、常見報錯處理、驗證清單。

環境確認

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

步驟 1:停止 MySQL 服務

  • 服務管理器:net stop mysql 或 services.msc 停止
  • 任務管理器:結束所有 mysqld.exe、mysql.exe 進程

步驟 2:以 skip-grant-tables 啟動

  1. CMD 切換到安裝目錄 bin 目錄:
    cd "D:\Program Files\MySQL\MySQL Server 5.6\bin"
  2. 執行:
    mysqld --skip-grant-tables
    (無分號,窗口保持開啟,提示 ready for connections)

skip-grant-tables 啟動窗口

步驟 3:新開 CMD 免密登入

  1. 同目錄下執行:
    mysql -u root -p
  2. 密碼提示直接按 Enter

免密登入成功

步驟 4:修改密碼並刷新

-- MySQL 5.6 使用 password 列
UPDATE mysql.user SET password = PASSWORD('new_root_password') WHERE User = 'root';
FLUSH PRIVILEGES;

步驟 5:重啟驗證

  1. 關閉 --skip-grant-tables 窗口 (Ctrl+C 或關閉進程)
  2. 正常啟動 MySQL 服務:net start mysql
  3. 新密碼登入驗證:mysql -u root -p

常見問題處理

問題 1:mysqld --skip-grant-tables 閃退
原因:配置文件錯誤、數據目錄權限、端口衝突。查看錯誤日誌 .err 文件
問題 2:免密登入報錯 Access denied
原因:未完全停止原服務、多實例衝突。任務管理器強制結束所有 mysql 進程
問題 3:修改密碼後仍無法登入
原因:FLUSH PRIVILEGES 未執行、Host 值不匹配。檢查 SELECT User, Host FROM mysql.user WHERE User='root';
問題 4:Windows 服務啟動失敗
檢查 my.ini 中 basedir、datadir 路徑是否正確,刪除 .pid 文件重試

Linux 環境差異補充

# 停止服務
systemctl stop mysqld

# 啟用 skip-grant-tables
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
systemctl start mysqld

# 修改密碼 (5.6)
mysql -uroot -e "UPDATE mysql.user SET password=PASSWORD('newpass') WHERE User='root'; FLUSH PRIVILEGES;"

# 恢復正常
systemctl unset-environment MYSQLD_OPTS
systemctl restart mysqld
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved