MySQL 忘記 root 密碼怎麼辦?ERROR 1045 Linux 重置方法(2026|Ubuntu / Debian / CentOS 教學)

MySQL 忘記 root 密碼怎麼辦?ERROR 1045 Linux 重置方法(2026|Ubuntu / Debian / CentOS 教學)
重要提醒
本教學涉及 MySQL 資料庫 root 密碼重置與系統權限操作,請確認你擁有該伺服器或資料庫的合法管理權限後再執行。

錯誤操作可能導致服務中斷或無法連線,建議先備份資料,並避免在正式生產環境隨意使用 skip-grant-tables 模式。

本內容僅供系統管理與故障排除用途使用。

在 Linux 系統中(Ubuntu、Debian、CentOS),MySQL 忘記 root 密碼是非常常見的問題,通常會伴隨 ERROR 1045 Access denied 錯誤。當無法登入 MySQL 管理帳號時,需要透過 systemctl 停止服務並進入安全模式(skip-grant-tables)重新設定 root 密碼。

✔ 常見問題情境

  • SSH 登入 MySQL 出現 ERROR 1045
  • root 密碼遺失無法登入
  • phpMyAdmin 無法連線資料庫
  • VPS 重啟後 MySQL 無法登入

✔ Step 1:停止 MySQL 服務(Linux)


sudo systemctl stop mysql

📌 CentOS / RHEL 系統請使用:


sudo systemctl stop mysqld

✔ Step 2:啟動 skip-grant-tables 安全模式


sudo mysqld_safe --skip-grant-tables --skip-networking &

✔ 此模式會跳過 MySQL 權限驗證 ✔ 用於緊急維修與密碼重置

✔ Step 3:登入 MySQL


mysql -u root

✔ 此時不需要輸入密碼即可登入

✔ Step 4:重置 root 密碼


ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
FLUSH PRIVILEGES;

✔ Step 5:重啟 MySQL 服務


sudo systemctl restart mysql

📌 CentOS / RHEL:


sudo systemctl restart mysqld

✔ Linux 系統差異重點

  • Ubuntu / Debian:mysql
  • CentOS / RHEL:mysqld
  • 操作核心一致(systemctl + skip-grant-tables)

FAQ 常見問題

Linux MySQL 忘記 root 密碼怎麼辦?

可透過 systemctl 停止 MySQL,再使用 mysqld_safe –skip-grant-tables 進入安全模式重置 root 密碼。

ERROR 1045 是什麼意思?

代表 MySQL 拒絕登入,通常是帳號或密碼錯誤,並不代表資料庫損壞。

skip-grant-tables 可以長期使用嗎?

不可以,這是維修模式,會關閉權限驗證,完成後必須立即恢復正常模式。

Ubuntu 和 CentOS 指令一樣嗎?

核心流程相同,但服務名稱不同(Ubuntu 使用 mysql,CentOS 使用 mysqld)。

    PAGE TOP