---
# System prepended metadata

title: XAMPP MySQL 修復教學（InnoDB 損毀修復）

---

# 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
```
![image](https://hackmd.io/_uploads/HJ4wvV_Vgl.png)

---

## 📁 備份原始資料資料夾

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 自動備份機制或定期匯出資料。