Windows 環境下 MySQL 服務啟動失敗,事件檢視器記錄「錯誤 1053:服務未及時回應啟動或控制請求」。嘗試重啟服務、重啟伺服器、甚至重裝 MySQL 均無效。本文記錄一真實案例:透過**變更服務登入身分為本地系統帳號/管理員帳號** 成功解決,並分析根因與通用排查清單。
services.msc) 啟動 MySQL 服務,進度條跑完後彈出:「錯誤 1053:服務未及時回應啟動或控制請求」Service Control Manager,Event ID 7000/7009mysqld --console 在前景可正常啟動,無錯誤輸出
MySQL Windows 服務預設以 Local System (本地系統帳號) 身分執行。若發生以下任一情況,服務控制管理器 (SCM) 在等待服務回應「已啟動」狀態時逾時 (預設 30 秒),拋出 1053 錯誤:
datadir (如移動到非預設路徑、NTFS 權限錯誤、EFS 加密)。my.ini 讀取失敗 (路徑錯誤、編碼問題、權限不足)。mysqld.exe 啟動行為。services.msc,找到 MySQL 服務 (顯示名稱通常為 MySQL 或 MySQL80),右鍵 → 「內容」。.\Administrator (或完整 DOMAIN\Administrator)原理: Administrator 擁有完整本機存取權,可繞過 Local System 在特定資源 (網路磁碟、加密目錄、特殊 ACL) 上的存取限制。
| 步驟 | 操作 | 預期結果 |
|---|---|---|
| 1. 前景啟動測試 | cd "C:\Program Files\MySQL\MySQL Server 8.0\bin" & mysqld --console | 輸出啟動日誌,確認無致命錯誤 |
| 2. 檢查錯誤日誌 | 查看 datadir\ | 找到具體錯誤代碼 (如 InnoDB 恢復失敗、權限拒絕) |
| 3. 驗證 datadir 權限 | 右鍵資料目錄 → 安全性 → 確認 SYSTEM/Administrators/服務帳號有「完全控制」 | 權限正確 |
| 4. 檢查 my.ini 路徑與編碼 | type "C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" 確認無 BOM、路徑正確 | 配置可讀、路徑存在 |
| 5. 排除連接埠衝突 | netstat -ano | findstr :3306 | 無其他進程佔用 |
| 6. 暫停安全軟體 | 暫時關閉 360/金山/Defender 即時防護 | 服務能否啟動 |
| 7. 系統資源檢查 | 記憶體是否耗盡、磁碟空間是否足夠 | 資源充足 |
| 8. 修復/重裝服務 | mysqld --remove && mysqld --install (以管理員 CMD 執行) | 服務重新註冊 |
svc_mysql) 而非 Administrator,授予「作為服務登入」權利、資料目錄完全控制、my.ini 讀取權限,遵循最小權限原則。datadir 放置於非系統盤 (如 D:\MySQL\Data),並確保 NTFS 權限正確。log-error) 並設定適當大小輪轉。mysql_up、mysql_global_status_uptime,異常即刻告警。MySQL 服務 1053 錯誤看似棘手,實則多為**權限/路徑/資源**三類問題。優先嘗試「前景啟動測試 + 變更服務登入身分」組合拳,能解決 80% 以上案例。若無效,按清單逐項排查,必能定位根因。