Windows Server 上 MySQL 服務啟動失敗報錯 Error 1067: The process terminated unexpectedly,九成原因是 C:\Windows\Temp 目錄積累數十萬 MySQL 臨時檔 (MYD*、MYI*、*.tmp),導致建立新臨時檔失敗。命令列批量刪除 + 計劃任務定期清理,徹底根治。
MySQL、Event ID 1067mysqld --console 前台啟動可見 Can't create/write to file 'C:\Windows\Temp\MYxxxx.tmp' (Errcode: 2)REM 以管理員身份開啟 CMD
cd /d C:\Windows\Temp
REM 刪除 MySQL 臨時檔 (通配符)
del /q /f MY*.tmp
del /q /f MYD*.tmp
del /q /f MYI*.tmp
del /q /f *.tmp
REM 若檔案被佔用無法刪,先停 MySQL 服務
net stop mysql
# 執行上述 del
net start mysql


為何不用資源管理器? 數十萬檔案開啟極慢、選中卡死、刪除進度條凍結,CMD del 直接遍歷 MFT 刪除,秒級完成。
@echo off
cd /d C:\Windows\Temp
del /q /f MY*.tmp MYD*.tmp MYI*.tmp *.tmp 2>nul
echo %date% %time% MySQL temp cleaned >> C:\Logs\mysql_temp_clean.log
schtasks /create /tn "CleanMySQLTemp" /tr "C:\Scripts\clean_mysql_temp.bat" /sc daily /st 03:00 /ru SYSTEM /rl HIGHEST
或圖形介面:控制台 → 系統和安全 → 管理工具 → 工作排程器 → 建立基本任務。
將臨時檔導向專用磁碟 (非系統盤、SSD、大空間),避免污染系統 Temp:
[mysqld]
tmpdir = D:/MySQLTemp
# 確保目錄存在、MySQL 服務帳號有讀寫權限
重啟服務生效。專用目錄便於監控磁碟佔用、獨立備份/清理策略、IO 隔離。
| 原因 | 排查 | 解決 |
|---|---|---|
| 配置檔語法錯誤 (my.ini) | mysqld --console 觀察啟動日誌 | 修正語法、路徑、參數值 |
| 資料目錄權限/路徑錯誤 | datadir 是否存在、帳號權限 | 修正路徑、授權、修復 ibdata1 |
| 埠 3306 被佔用 | netstat -ano | findstr 3306 | 殺佔用進程、改埠 |
| InnoDB 日誌檔損壞/大小不符 | 錯誤日誌 InnoDB: Log file .\ib_logfile0 is of different size | 停服務、刪 ib_logfile*、重啟 (自動重建) |
| 防毒軟體攔截 mysqld.exe | 白名單加入安裝目錄 bin/ | 設定排除掃描 |
C:\Windows\Temp 檔案數 < 10,000tmpdir 磁碟使用率 < 70%.err 無連續報錯CleanMySQLTemp 最近執行狀態「成功」Error 1067 看似嚇人,實則多為「垃圾堵門」。建立「專用臨時目錄 + 定時清理 + 監控告警」三層防線,讓 MySQL 在 Windows 上也能穩如磐石。