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

忘記 MySQL root 密碼?Windows 下跳過權限表重置密碼圖文教程

     編輯:MySQL 資料庫相關知識

適用環境

  • Windows 系統;
  • WAMP / phpStudy / 手動安裝 MySQL 均適用。

核心原理

以 --skip-grant-tables 啟動 mysqld,跳過權限表驗證,無密碼登入後更新 mysql.user 表密碼列,再刷新權限、正常重啟。

步驟詳解

1. 結束現有 MySQL 進程

任務管理器 → 詳情 → 找到 mysqld.exe / mysqld-nt.exe → 結束任務。

2. 開啟命令行跳過權限啟動


# 進入 MySQL bin 目錄(視安裝路徑調整)
d:
cd wamp\mysql\bin

# 跳過權限表啟動
mysqld --skip-grant-tables

窗口光標閃爍不接受輸入即表示成功後台運行。

3. 新開命令行無密碼登入並改密


# 同目錄下
mysql -u root

# 進入 mysql 系統庫
USE mysql;

# 更新密碼(MySQL 5.7+ 使用 authentication_string,8.0+ 同)
UPDATE user SET authentication_string=PASSWORD('123456') WHERE User='root';
-- 旧版本:UPDATE user SET Password=PASSWORD('123456') WHERE User='root';

# 刷新權限
FLUSH PRIVILEGES;

# 退出
EXIT;

4. 正常重啟 MySQL 服務

  • 關閉 --skip-grant-tables 的命令行窗口(Ctrl+C);
  • 通過服務管理器(WAMP 面板 / services.msc / net start mysql)重新啟動 MySQL;
  • 使用新密碼 123456 登入驗證。

常見問題排查

現象原因與解決
UPDATE 提示 Unknown column 'Password'MySQL 5.7+ 欄位改為 authentication_string
FLUSH PRIVILEGES 報錯確保在 USE mysql; 後執行
重啟後仍無法登入檢查是否仍以 --skip-grant-tables 運行,必須正常啟動
權限不足無法寫入 user 表以管理員身份運行命令提示符

Linux 系統快速參考


systemctl stop mysqld
mysqld_safe --skip-grant-tables &
mysql -u root
UPDATE mysql.user SET authentication_string=PASSWORD('newpass') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;
pkill mysqld
systemctl start mysqld
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved