# XAMPP MySQL 修復教學(InnoDB 損毀修復)
> 本文件整理自 2025/06/24 修復實際操作紀錄,供未來遇到相同問題時參考。
當 XAMPP 中的 MySQL 無法啟動,並出現像如下方的錯誤,可依以下步驟修復。
```
[mysql] Status change detected: running
[mysql] Status change detected: stopped
[mysql] Error: MySQL shutdown unexpectedly.
[mysql] This may be due to a blocked port, missing dependencies,
[mysql] improper privileges, a crash, or a shutdown by another method.
[mysql] Press the Logs button to view error logs and check
[mysql] the Windows Event Viewer for more clues
[mysql] If you need more help, copy and post this
[mysql] entire log window on the forums
```

---
## 📁 備份原始資料資料夾
1. 關閉 XAMPP 控制面板中所有服務,並關閉XAMPP。
2. 到XAMPP的資料夾內的 `mysql` 資料夾將原本的 `data` 資料夾重新命名為備份用名稱ex: `data_old` or `data_xxxx`
## ♻️ 使用乾淨備份初始化系統資料表
3. 從 `mysql` 資料夾中找到預設的 `backup` 資料夾備份中複製一份並重新命名為 `data`
## 📁 還原原始資料表資料
4. 將前面複製並重新命名的`data_old` 或 `data_xxxx` 中的所有**自建**資料庫資料夾(例如 `myproject`)**複製**到新的 `data` 資料夾中:
✅ **排除以下系統資料夾**:
- `mysql`
- `performance_schema`
- `phpmyadmin`
5. **覆蓋原本的 InnoDB 系統檔案**
將`ibdata1`檔案從 `data_old` 複製回新的 `data` 資料夾中,以還原原有的 InnoDB 資料內容。
## 🚀 啟動 MySQL
6. 重新啟動 XAMPP 控制台,重新啟動 MySQL。
- 若啟動成功,表示修復成功。
- 若仍啟動失敗,請點選「Logs」按鈕查看 `mysql_error.log` 錯誤日誌,以進一步確認問題。
---
## 🔒 補充說明
- 此方法保留原始 InnoDB 資料的同時,清除了損毀的系統資料表檔案。
- 若原始資料庫資料夾中遺失 `.ibd` 或 `.frm`,仍有可能無法完全還原。
---
## ✅ 建議
- 修復成功後,請盡快 **匯出備份 .sql 檔** 作為後續備援。
- 建議啟用 MySQL 自動備份機制或定期匯出資料。