首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 1067 錯誤「進程意外終止」深度排查與多重解決方案

     編輯:MySQL 資料庫相關知識

錯誤現象

A system error has occurred.
System error 1067 has occurred.
The process terminated unexpectedly.

Windows 服務管理器啟動 MySQL 服務失敗,通用錯誤碼 1067 代表「服務進程啟動後異常退出」,具體原因需查閱錯誤日誌 (.err 文件)。

核心排查三步曲

1. 看錯誤日誌 (最關鍵)

-- 默認位置
C:\Program Files\MySQL\MySQL Server 5.x\data\主機名.err
-- 或 my.ini 指定的 log-error 路徑

常見關鍵字:

  • InnoDB: Unable to lock ./ibdata1 → 數據文件被佔用/殘留進程
  • Can't create test file → datadir 權限/路徑錯誤
  • Plugin 'InnoDB' registration failed → 配置參數不兼容/版本升級殘留

2. 修正 my.ini 關鍵路徑 (高發原因)

確保 [mysqld] 區段存在且路徑正確 (使用正斜線 / 或雙反斜線 \\):

[mysqld]
basedir=C:/Program Files/MySQL/MySQL Server 5.7
datadir=C:/ProgramData/MySQL/MySQL Server 5.7/Data
port=3306
  • 刪除系統目錄 (C:\Windows\my.ini) 殘留舊配置,避免被誤讀。
  • 確保 System 用戶對 basedir、datadir 有讀寫權限。

3. 清理殘留進程與鎖文件

taskkill /f /im mysqld.exe
del "C:\ProgramData\MySQL\MySQL Server 5.7\Data\ibdata1"  -- 僅限全新初始化,有數據勿刪
del "C:\ProgramData\MySQL\MySQL Server 5.7\Data\*.err"

進階解決方案彙總

my.ini 必須為 UTF-8 無 BOM 或 ANSI,避免中文註釋導致解析錯誤
場景解決動作
升級/遷移後啟動失敗以管理員身份運行 mysqld --initialize-insecure 重新初始化數據目錄 (備份舊數據前提下)
端口衝突netstat -ano | findstr 3306 找佔用進程殺掉或改 port
配置文件編碼問題
服務註冊損壞sc delete MySQL 刪除服務,mysqld --install MySQL --defaults-file="C:\my.ini" 重新註冊
InnoDB 日誌文件大小不匹配刪除 ib_logfile0/1 (MySQL 停止時),重啟自動重建

終極調試大招

-- 前台運行輸出完整日誌
mysqld --console --defaults-file="C:\my.ini"

-- 生成詳細追蹤日誌
mysqld --standalone --debug
-- 分析 C:\mysqld.trace

總結

1067 是「掩面具」,真兇藏在 .err 日誌與 my.ini 路徑配置中。養成「先看日誌、核路徑、清殘留、再重裝」的肌肉記憶,90% 情況 10 分鐘內搞定。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved