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

Windows Server MySQL 服務啟動失敗 (錯誤 1067) 兩大類原因與解決方案

     編輯:MySQL 資料庫相關知識

Windows 上 MySQL 服務啟動報「系統錯誤 1067,進程意外終止」?經驗顯示 90% 以上屬於以下兩類原因:系統暫存檔殘留 或 配置檔路徑錯誤。本文提供針對性排查步驟與修復指令。

一、原因一:系統暫存檔殘留導致鎖衝突(最常見、最易修復)

現象

  • 配置檔無誤,但服務啟動失敗
  • 錯誤日誌無明顯業務邏輯錯誤

解決:清理 Windows Temp 目錄

  1. Win+R → cmd 開啟命令提示字元
  2. 執行:
del C:\Windows\Temp\*.* /s /q

等待刪除完成(可能需幾秒至幾分鐘),再次啟動 MySQL 服務通常即可恢復正常。

執行 cmd
清理 Temp 目錄

原理

MySQL 啟動時會在 C:\Windows\Temp 建立臨時檔案(如 mysql_*.tmp、ib* 等)。若殘留大量舊暫存檔或權限異常,導致建立新暫存檔失敗,進程啟動即崩潰。

二、原因二:配置檔路徑錯誤 (basedir/datadir/tmpdir 不正確)

現象:錯誤 1067,錯誤日誌關鍵行

InnoDB: Error: unable to create temporary file; errno: 2
[ERROR] Plugin 'InnoDB' init function returned error.
[ERROR] Unknown/unsupported storage engine: INNODB
[ERROR] Aborting

核心提示:無法建立臨時檔案 (errno: 2 = 檔案/目錄不存在)

排查清單

  1. my.ini 位置唯一性:刪除 %WINDIR%\my.ini、C:\my.ini 等非安裝目錄的殘留配置,僅保留安裝目錄下的 my.ini
  2. basedir 指向安裝根目錄(含 bin、share 等):
[mysqld]
basedir=C:\mysql-5.1.11-beta-win32
  1. datadir 指向資料目錄(含 *.ibd、*.frm、mysql/ 等):
datadir=C:\mysql-5.1.11-beta-win32\data
  1. tmpdir 明確指定可寫入目錄(關鍵,解決 errno:2):
tmpdir="C:\mysql-5.1.11-beta-win32\tmp"
# 確保該目錄存在且 MySQL 服務帳號有寫入權限
  1. 重新註冊服務(清除舊服務殘留):
mysqld-nt --remove
mysqld-nt --install
net start mysql

完整 my.ini 範例(最小可用)

[mysqld]
basedir=C:\mysql-5.1.11-beta-win32
datadir=C:\mysql-5.1.11-beta-win32\data
tmpdir=C:\mysql-5.1.11-beta-win32\tmp
port=3306
socket=mysql.sock
default-storage-engine=INNODB
character-set-server=utf8

三、進階排查:若上述無效

  1. 檢查錯誤日誌 .err 檔(datadir 下),搜尋 ERROR 關鍵字
  2. 以控制台模式啟動觀察即時輸出:mysqld --console
  3. 檢查埠口佔用:netstat -ano | findstr 3306
  4. 防毒軟體/索引服務鎖定資料檔 → 加入排除清單
  5. 磁碟空間不足 → 清理空間
  6. 權限問題:資料目錄授權給 NETWORK SERVICE 或專用服務帳號

四、預防清單

  • [ ] 定期清理 C:\Windows\Temp(可設定排程任務)
  • [ ] my.ini 僅保留一份,置於安裝目錄
  • [ ] basedir/datadir/tmpdir 使用絕對路徑,目錄預先建立
  • [ ] 服務登入身份改為專用帳號,授權資料/暫存/日誌目錄
  • [ ] 監控錯誤日誌關鍵字告警

遇到 1067 錯誤,先清 Temp、再核路徑、再重裝服務,三步解決九成問題;剩下一成看錯誤日誌,對症下藥。

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