MySQL 5.1/5.5/5.6/5.7/8.0 在 Windows 上安裝後服務無法啟動,事件檢視器記錄 錯誤 1067:進程意外終止。主流原因與對應修復步驟如下:
C:\ProgramData\MySQL\MySQL Server X.Y\** (隱藏資料夾,含 my.ini、data\、錯誤日誌 .err)。C:\ProgramData\MySQL\ 整個資料夾刪除最乾淨,避免舊 my.ini 衝突、舊 data\ibdata1 損壞、舊 root 密碼殘留。C:\Program Files\MySQL\**。HKEY_LOCAL_MACHINE\SOFTWARE\MySQL AB、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL。D:\MySQL\Data)。services.msc 確認 MySQLXX 服務狀態為「執行中」。mysql -u root -p 連線測試。.err 確認無 [ERROR] 項目。| 檢查項目 | 操作 | 常見發現 |
|---|---|---|
| 錯誤日誌 | 用記事本開啟 data\主機名.err | InnoDB: Unable to lock ./ibdata1 (另一實例在跑/權限不足)、[ERROR] Can't create test file (資料目錄權限/路徑錯誤)、[ERROR] Plugin 'InnoDB' registration failed (ib_logfile 損壞/大小不符) |
| my.ini 設定 | 檢查 datadir、innodb_data_file_path、innodb_log_file_size 路徑是否存在、大小是否合法 | 手動修改 my.ini 導致路徑錯誤、log file size 與現有 ib_logfile0/1 不符 |
| 端口衝突 | netstat -ano | findstr 3306 | PID 非 mysqld.exe → 其他程式佔用 3306 (如 MariaDB、舊 MySQL 殘留) |
| 權限問題 | 資料目錄右鍵 → 安全性 → SYSTEM/Administrators/網路服務 完整控制 | 資料目錄從他處複製而來,ACL 遺失 |
| Visual C++ Redistributable | 安裝 VC++ 2015-2022 Redistributable (x64) | 缺少 MSVCP140.dll、VCRUNTIME140.dll 導致 mysqld.exe 彈窗崩潰 |
| 防毒軟體攔截 | 暫時關閉即時掃描或加入 mysqld.exe/data 目錄白名單 | 誤判 ibdata1 變更為勒索軟體行為 |
mysql_upgrade -u root -p 修復系統表,否則服務啟動即崩潰。innodb_log_file_size 變更需先刪除舊 ib_logfile* 再啟動 (MySQL 會自動重建)。Stop-Service -Name 'MySQL*' -Force -ErrorAction SilentlyContinue
Get-WmiObject Win32_Product | Where-Object {$_.Name -like '*MySQL*'} | ForEach-Object { $_.Uninstall() }
Remove-Item 'C:\Program Files\MySQL' -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item 'C:\ProgramData\MySQL' -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item 'HKLM:\SOFTWARE\MySQL AB' -Recurse -ErrorAction SilentlyContinue
Remove-Item 'HKLM:\SYSTEM\CurrentControlSet\Services\MySQL*' -Recurse -ErrorAction SilentlyContinue
# 重開機後以管理員身分執行全新安裝程式