Windows 環境下 MySQL 服務無法啟動,事件檢視器報錯 1067,真兇往往是 C:\Windows\Temp 積累數十萬個 mysql_*.tmp 暫存檔。
del /q /f /s C:\Windows\Temp\mysql_*.tmp
net start MySQL 或服務管理員中重啟。clean_mysql_temp.bat:
@echo off
del /q /f /s C:\Windows\Temp\mysql_*.tmp
MySQL 執行 CREATE TEMPORARY TABLE、FILESORT、大結果集處理時會在 tmpdir (預設 %TEMP%) 建立暫存檔。正常關閉會自動刪除,但異常 Crash、殺進程、磁碟滿等情況會導致殘留。檔案數過多時,FindFirstFile/FindNextFile 掃描極慢,甚至阻塞服務啟動初始化。
my.ini 指定專用暫存目錄:tmpdir=D:/mysql_tmp(獨立磁碟、定期清理更易管理)。Created_tmp_disk_tables、Created_tmp_files 狀態變數,異常暴增預警。