1. 程式人生 > >【日積月累】MongoDB 註冊為 Window 服務時遇到的問題總結

【日積月累】MongoDB 註冊為 Window 服務時遇到的問題總結

一、Error creating service: 名稱已用作服務名或服務顯示名。 (1078)

  啟動 MongoDB 服務總是很麻煩的,因此一般通過註冊為系統服務,隨系統啟動。一般是通過配置檔案啟動,配置檔案內容:

#ip繫結,限制ip訪問
bind_ip=192.168.88.88

#埠
port=20001

#資料庫配置路徑
dbpath=C:\MongoDB\data

#日誌檔案配置
logpath=C:\MongoDB\log\mongo.log

#設定日誌為追加的方式寫日誌
logappend=true

#將預設的儲存引擎wiredTiger更換為mmapv1
#storageEngine=mmapv1

#啟用身份認證
#auth=true

#複製集名稱
replSet=rs0

命令是:

mongod --config C:\MongoDB\conf\mongo.config --serviceName MongoDB  --install

  但是在我使用 cmd 進行註冊時,發現通過執行上面的程式碼不能註冊成功,於是我思考了一個這整個問題,想了一下,是不是執行上面這行程式碼需要管理員許可權才行,於是就 使用管理員許可權執行 cmd 再次執行上述程式碼,發現還是註冊不成功,於是,又想了一下,命名 mongod 是 MongoDB的命名,不是 Windows 的,會不會有日誌,我就按我配置檔案中配置的日誌路徑去尋找是否有日誌存在,果然,日誌是存在的,而且點開日誌發現有下面的報錯資訊:

2018-10-26T20:57:00.419+0800 I CONTROL  [main] ***** SERVER RESTARTED *****
2018-10-26T20:57:00.817+0800 I CONTROL  [main] Trying to install Windows service 'MongoDB'
2018-10-26T20:57:00.818+0800 I CONTROL  [main] Error creating service: 名稱已用作服務名或服務顯示名。 (1078)

  於是,首先第一步,確認系統沒有註冊名為 MongoDB的服務,然後反覆百度之後發現 Windows 系統註冊服務時有引數 serviceDisplayName

,於是將命名改為

mongod --config C:\MongoDB\conf\mongo.config --serviceName MongoDB --serviceDisplayName MongoDB --install

  執行上面改過的程式碼檢視日誌:

2018-10-26T21:01:54.327+0800 I CONTROL  [main] ***** SERVER RESTARTED *****
2018-10-26T21:01:54.734+0800 I CONTROL  [main] Trying to install Windows service 'MongoDB'
2018-10-26T21:01:54.948+0800 I CONTROL  [main] Service 'MongoDB' (MongoDB) installed with command line 'c:\MongoDB\bin\mongod.exe --config C:\MongoDB\conf\mongo.config --service'
2018-10-26T21:01:54.948+0800 I CONTROL  [main] Service can be started from the command line with 'net start MongoDB'

成功註冊!

【持續更新】