首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

MongoDB 服務啟動失敗排查實戰:從路徑錯誤到 mongod.lock 殘留

     編輯:DB2 教學

故障現象:服務啟動報「系統找不到指定文件」

安裝 MongoDB 後首次啟動正常,二次啟動卻失敗,錯誤碼 2(文件不存在),隨後修復過程中又遇到 1607(進程意外終止)。

根因分析:服務路徑指向已刪除的舊安裝目錄

  1. 先後安裝了兩次 MongoDB
  2. 手動刪除(非卸載)了第一個安裝目錄
  3. Windows 服務 MongoDB 的「可執行文件路徑」仍指向已刪除的舊 mongod.exe
  4. 服務啟動時找不到可執行文件,報錯誤碼 2

標準修復流程:完全重建服務

步驟 1:卸載現有服務

mongod.exe --remove --serviceName "MongoDB"

執行成功後,服務管理器中該服務消失。

步驟 2:以正確路徑重新安裝服務

mongod.exe --install --logpath="E:\Program Files\mongodb\data\log\log.txt" --dbpath="E:\Program Files\mongodb\data\db"
  • --logpath:日志文件完整路徑(目錄需預先存在)
  • --dbpath:數據文件目錄(目錄需預先存在)
  • 路徑含空格時**必須用雙引號包裹**

步驟 3:驗證服務屬性路徑已更新

打開 services.msc,確認「可執行文件路徑」指向新安裝目錄下的 mongod.exe。

二次故障:錯誤碼 1607 — mongod.lock 殘留導致

服務路徑修正後啟動,報錯 1607。查看日志發現:

old lock file: E:\Program Files\mongodb\data\db\mongod.lock. probably means unclean shutdown

原因

上次非正常關機(或進程被殺)導致 mongod.lock 未清理。MongoDB 啟動時檢測到鎖文件,為防止數據損壞拒絕啟動。

解決

del "E:\Program Files\mongodb\data\db\mongod.lock"

刪除後重啟服務,成功運行。

最佳實踐總結

  1. 嚴禁手動刪除安裝目錄:務必使用 mongod.exe --remove 卸載服務,再刪除文件
  2. 路徑含空格必加引號:--dbpath="E:\Program Files\..."
  3. 啟動失敗先查日志:--logpath 指定的文件是第一現場
  4. mongod.lock 是保護機制:非極端情況勿手動刪除;刪除前確認無其他 mongod 進程運行
  5. 生產環境建議:使用配置文件 mongod.cfg + 系統服務管理,避免命令行參數維護困難
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved