根據是否知道舊密碼、是否具備資料庫管理權限、是否允許服務重啟,選擇最適合的密碼變更方式。本文提供四大法圖文並茂操作步驟、適用場景與避坑指南。
mysql.exe、mysqladmin.exe 所在目錄已加入系統 PATH,或 cd 至 bin 目錄執行# 1. 登入 MySQL
mysql -u root -p
# 輸入舊密碼
# 2. 執行修改指令
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NewPass2024!');
# 或 MySQL 8.0+
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass2024!';
# 3. 立即生效,無需重啟
mysql> FLUSH PRIVILEGES;
適用:知道舊密碼、不想重啟服務、單一實例。
注意:MySQL 5.7.6+ PASSWORD() 回傳雜湊值,8.0 棄用 PASSWORD() 改用 ALTER USER。

適用:自動化部署腳本、CI/CD 流程、批次修改多實例。
優點:無需進入互動式 Shell,適合腳本化。
方法三:UPDATE mysql.user 表直改(需舊密碼、可批量修改多帳號)
方法四:忘記 Root 密碼緊急重置(無舊密碼、需重啟服務)
- 停止服務:
net stop mysql- 跳過授權啟動:
cd "C:\Program Files\MySQL\MySQL Server 5.7\bin"
mysqld --skip-grant-tables --skip-networking- 另開視窗無密碼登入:
mysql -u root- 修改密碼(同方法三 UPDATE 指令)
FLUSH PRIVILEGES; EXIT;- 關閉跳過授權視窗 (Ctrl+C),正常啟動:
net start mysql- 驗證新密碼登入
適用:完全遺忘密碼、無其他管理員帳號。
安全警示:--skip-grant-tables期間任何本地連線擁有最高權限,務必加--skip-networking並盡快完成。
四大法快速選型表
| 場景 | 推薦方法 | 需舊密碼 | 需重啟 | 風險等級 |
|---|---|---|---|---|
| 日常定期輪換 | 方法一 SET PASSWORD | 是 | 否 | 低 |
| 自動化部署腳本 | 方法二 mysqladmin | 是 | 否 | 低 |
| 批量修改多 Host root | 方法三 UPDATE user | 是 | 否 | 中 |
| 完全遺忘密碼 | 方法四 緊急重置 | 否 | 是 | 高(臨時降權) |
SELECT User, Host, plugin FROM mysql.user WHERE User='root'; 確認 plugin 為 mysql_native_password