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

Windows 忘記 MySQL 密碼重置完整指南:--skip-grant-tables 實戰

     編輯:MySQL 資料庫相關知識

核心原理

啟動 MySQL 時加入 --skip-grant-tables,**跳過權限表驗證**,以任意用戶無密碼登入,進而更新 mysql.user 表重置密碼。

步驟詳解

1. 停止 MySQL 服務

net stop mysql
# 或任務管理器結束 mysqld.exe
# 或 services.msc 停止 MySQL 服務

2. 啟動跳過權限的實例

cd "C:\Program Files\MySQL\MySQL Server 5.5\bin"
mysqld --console --skip-grant-tables
# 視窗保持開啟,勿關閉

3. 新開命令列無密碼登入

cd "C:\Program Files\MySQL\MySQL Server 5.5\bin"
mysql -u root
# 進入 mysql> 提示符

4. 更新密碼

USE mysql;
UPDATE `user` SET `Password` = PASSWORD('123456') WHERE `User` = 'root';
FLUSH PRIVILEGES;

5. 退出並正常重啟

# 關閉 --skip-grant-tables 視窗 (Ctrl+C)
# 正常啟動服務
net start mysql
# 或 services.msc 啟動

6. 驗證新密碼

mysql -u root -p123456

三種常用修改密碼方法(正常登入後)

方法命令適用場景
mysqladminmysqladmin -u root -p'old' password 'new'命令列快速修改
SET PASSWORDSET PASSWORD FOR 'root'@'localhost' = PASSWORD('new');SQL 介面、腳本自動化
UPDATE user 表UPDATE mysql.user SET Password=PASSWORD('new') WHERE User='root'; FLUSH PRIVILEGES;批量、復雜條件

MySQL 8.0 注意事項

  • Password 欄位改為 authentication_string
  • 預設驗證插件 caching_sha2_password,舊客戶端需指定 mysql_native_password
  • 重置語句:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;

安全建議

  1. 重置後**立即建立專用應用帳號**,禁用 root 遠端登入。
  2. 密碼策略:長度≥12、大小寫數字符號混合、定期輪換。
  3. 啟用 validate_password 元件強制密碼複雜度。

結語

Windows 下忘記 MySQL root 密碼,**--skip-grant-tables + 更新 mysql.user + FLUSH PRIVILEGES** 是標準流程。掌握三種日常修改密碼方法,配合 MySQL 8.0 新語法差異,做到有備無患。

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