萬盛學電腦網

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

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

MySQL root 密碼遺失?分平台完整重置教學

忘記 MySQL root 密碼是常見運維場景,核心原理是啟動跳過權限表模式 (--skip-grant-tables),免密登入後修改 mysql.user 表密碼欄位。

Windows 環境重置步驟

  1. 以管理員身分開啟命令提示字元
  2. 停止 MySQL 服務:net stop mysql
  3. 進入 MySQL 安裝目錄 bin 資料夾 (如 C:\Program Files\MySQL\MySQL Server 8.0\bin)
  4. 啟動跳過權限模式:mysqld --skip-grant-tables --console
  5. **另開視窗** 免密登入:mysql -u root
  6. 執行密碼重置 SQL:
USE mysql;
-- MySQL 5.7+ 使用 authentication_string 欄位
UPDATE user SET authentication_string=PASSWORD('新密碼') WHERE User='root';
-- MySQL 8.0+ 建議使用 ALTER USER
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
FLUSH PRIVILEGES;
EXIT;
  1. 結束 mysqld 進程 (工作管理員或 taskkill /f /im mysqld.exe)
  2. 正常啟動 MySQL 服務:net start mysql
  3. 使用新密碼登入驗證

Linux 環境重置步驟

  1. 停止服務:systemctl stop mysqld 或 /etc/init.d/mysqld stop
  2. 啟動跳過權限模式:mysqld_safe --skip-grant-tables --skip-networking &
  3. 免密登入:mysql -u root
  4. 執行相同重置 SQL (見上方)
  5. 重啟服務:systemctl restart mysqld

MySQL 8.0+ 重要變更

  • password 欄位改為 authentication_string
  • 預設加密插件為 caching_sha2_password
  • 建議使用 ALTER USER 語法而非直接 UPDATE 系統表
  • 若遇「密碼不符合政策」錯誤,可暫時降低密碼驗證強度:SET GLOBAL validate_password.policy=LOW;

安全性提醒

--skip-grant-tables 期間任何人可免密存取資料庫,**務必加上 --skip-networking 限制本機存取**,完成後立即重啟正常模式。

copyright © 萬盛學電腦網 all rights reserved