Windows 服務管理器啟動 MySQL 彈窗:「錯誤 1067:進程意外終止」。本文記錄真實排查過程、常見原因矩陣、最終解決路徑。

my.ini 後,嘗試重啟服務net stop mysql 未生效,服務管理器強制停止| 原因類別 | 具體原因 | 排查命令/動作 | 解決方案 |
|---|---|---|---|
| 配置文件 | my.ini 語法錯誤、編碼非 ANSI/UTF-8、路徑含中文/空格 | mysqld --help --verbose 2>&1 | findstr -i error、記事本另存為 UTF-8 無 BOM | 修正語法、編碼、路徑 |
| 存儲引擎 | default-storage-engine 設置不存在的引擎 | 錯誤日誌 .err 文件 | 改為 InnoDB 或註釋掉 |
| 數據文件 | ibdata1、ib_logfile* 損壞、版本不匹配 | 檢查 data 目錄文件大小、時間戳 | 備份數據 → 刪除 ibdata1/ib_logfile* → 重啟自動重建 |
| 端口衝突 | 3306 被佔用 | netstat -ano | findstr 3306 | 殺佔用進程或改端口 |
| 權限問題 | data 目錄權限不足、服務帳戶無權限 | ICACLS data 目錄 | 授予服務帳戶完全控制 |
| 殘留進程 | mysqld.exe 未完全退出 | 任務管理器 / taskkill /f /im mysqld.exe | 強制殺進程再啟動 |
my.ini → 無效ibdata1、ib_logfile0/1 → 無效.err 錯誤日誌(data 目錄下 主機名.err)獲取真實堆棧net stop mysql 失效時,先 taskkill /f /im mysqld.exe,再啟動,避免臟關機導致文件損壞1. 查看錯誤日誌:type \.err
2. 檢查配置語法:mysqld --help --verbose
3. 檢查端口/進程:netstat -ano | findstr 3306 / tasklist | findstr mysql
4. 檢查權限/磁盤空間:icacls data / dir data
5. 核心文件損壞:備份 .frm/.ibd → 刪除 ibdata1/ib_logfile* → 重啟 → 還原數據
6. 無效則重裝:卸載 → 清理註冊表/目錄/服務 → 重裝 → 還原備份
遇到 1067 不要盲目嘗試網上方案,「看日誌、查配置、核進程、備份數據、果斷重裝」才是專業態度。