萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

忘記 MySQL root 密碼?Windows/Linux 完整重置指南

MySQL root 密碼遺忘終極修復方案

root 權限最高,密碼遺忘會導致無法管理資料庫。本文提供 Windows 與 Linux 兩大平台的完整重置流程。

Windows 環境重置流程

步驟 1:停止 MySQL 服務

net stop mysql

步驟 2:跳過權限表啟動

進入 MySQL 安裝目錄 bin 資料夾,執行:

mysqld --skip-grant-tables

注意:MySQL 5.7+ 使用 mysqld 而非 mysqld-nt。

步驟 3:無密碼登入並修改

另開一個 CMD 視窗:

mysql -u root
-- 進入 MySQL 後執行:
USE mysql;
UPDATE user SET authentication_string=PASSWORD('新密碼') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;

MySQL 5.7+ 注意:密碼欄位為 authentication_string,舊版為 password。

步驟 4:正常重啟服務

net start mysql

Linux 環境重置流程

方法一:跳過權限表法(推薦)

# 1. 停止服務
systemctl stop mysqld

# 2. 建立臨時配置
mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld

# 3. 跳過權限啟動
mysqld_safe --skip-grant-tables --skip-networking &

# 4. 無密碼登入修改
mysql -u root
USE mysql;
UPDATE user SET authentication_string=PASSWORD('新密碼') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;

# 5. 正常重啟
pkill mysqld
systemctl start mysqld

方法二:init-file 法(更安全)

# 1. 建立 SQL 腳本
echo "ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';" > /tmp/reset.sql

# 2. 停止服務並用 init-file 啟動
systemctl stop mysqld
mysqld --init-file=/tmp/reset.sql --user=mysql &

# 3. 正常重啟
pkill mysqld
systemctl start mysqld

⚠️ 重要安全提醒

Linux 系統 root 密碼 ≠ MySQL root 密碼

  • 兩者完全獨立,修改系統密碼不影響 MySQL
  • 文章中提到的「修改 /etc/passwd 破解系統 root 密碼」屬於系統級操作,與 MySQL 密碼重置無關
  • 請勿混淆兩者,避免造成系統安全風險

驗證修改結果

mysql -u root -p'新密碼' -e "SELECT VERSION();"

成功連線即表示重置完成。

copyright © 萬盛學電腦網 all rights reserved