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

MySQL 5.0 Root 密碼遺忘找回全平台指南:--init-file、--skip-grant-tables、服務管理

     編輯:MySQL 資料庫相關知識

核心原理

跳過權限驗證啟動 MySQL,以無密碼 root 身分修改 mysql.user 表密碼欄位,重啟正常服務。

方法一:--init-file 自動化腳本(Windows 推薦,無需互動)

  1. 建立 SQL 腳本 reset_root.sql:
-- 5.7.6+ / 8.0
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
-- 5.0 / 5.1 / 5.5 / 5.6
UPDATE mysql.user SET Password = PASSWORD('123456') WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
  1. 以管理員身分停止服務:net stop mysql(或 net stop mysql50)。
  2. 以管理員身分啟動載入腳本:
"C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe" --init-file="C:\reset_root.sql" --console

觀察主控台輸出,見 ready for connections 表示腳本已執行。

  1. Ctrl+C 停止,正常啟動服務:net start mysql。
  2. 驗證新密碼:mysql -u root -p123456。

方法二:--skip-grant-tables 互動修改(通用 Linux/Windows)

Windows

net stop mysql
cd "C:\Program Files\MySQL\MySQL Server 5.0\bin"
start mysqld-nt --skip-grant-tables --skip-networking
REM 新開 CMD 視窗
mysql -u root
USE mysql;
UPDATE user SET Password = PASSWORD('123456') WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
EXIT;
Ctrl+C 關閉 mysqld-nt 視窗
net start mysql

Linux

service mysql stop
mysqld_safe --skip-grant-tables --skip-networking &
mysql -u root
USE mysql;
UPDATE user SET Password = PASSWORD('123456') WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
EXIT;
pkill mysqld
service mysql start

方法三:Windows 服務管理器圖形化操作

  1. 服務管理器 services.msc 停止 MySQL 服務。
  2. 註冊表編輯 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL\ImagePath,在路徑末尾加 --skip-grant-tables。
  3. 啟動服務,用無密碼 root 登入修改密碼。
  4. 移除註冊表參數,重啟服務。

MySQL 5.0 特別注意

  • 密碼欄位為 Password(非 authentication_string)。
  • PASSWORD() 雜湊為 16 字元十六進位(41 字元為 4.1+ 格式)。
  • 若 old_passwords=1,需同步設定 SET PASSWORD = OLD_PASSWORD('123456')。

驗證清單

mysql -u root -p123456 -e "SELECT VERSION(), CURRENT_USER();"
mysql -u root -p123456 -e "SHOW VARIABLES LIKE 'old_passwords';"

預防措施

  • 建立專用管理帳號 dba@'10.0.0.%',弱化 root 使用頻率。
  • 密碼存入密碼管理器,定期輪換。
  • 監控 mysql.user 表異動(審計觸發器/Binlog 解析)。

三種找回路徑覆蓋所有場景,建議預先演練 --init-file 方案,實戰零壓力。

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