將mongodb安裝爲windows服務

首先  下載mongodb: git

http://www.mongodb.org/downloads web

解壓到本身喜歡的一個目錄 sql

D:\nosql\mongodb mongodb

配置MONGODB_HOME環境變量 windows

MONGODB_HOME=D:\nosql\mongodb\mongodb-win32-i386-2.0.6 app

修改path變量值:在最後加上%MONGODB_HOME%\bin; nosql

編寫安裝批處理語句: socket

mongod --logpath D:\nosql\mongodb\logs\mongodb.log  --logappend --dbpath D:\nosql\mongodb\data\db\ --directoryperdb --serviceName MongoDB --install 編輯器

語句中不存在的目錄和文件須要本身創建 post

操做打開cmd,進入到

D:\nosql\mongodb\mongodb-win32-i386-2.0.6\bin目錄,執行以上批處理:

失敗!!!!!

查看日誌:D:\nosql\mongodb\logs\mongodb.log 


Error connecting to the Service Control Manager: 拒絕訪問。 (5)
Tue Jan 15 10:45:31 dbexit: 
Tue Jan 15 10:45:31 shutdown: going to close listening sockets...
Tue Jan 15 10:45:31 shutdown: going to flush diaglog...
Tue Jan 15 10:45:31 shutdown: going to close sockets...
Tue Jan 15 10:45:31 shutdown: waiting for fs preallocator...
Tue Jan 15 10:45:31 shutdown: closing all files...
Tue Jan 15 10:45:31 closeAllFiles() finished
Tue Jan 15 10:45:31 dbexit: really exiting now


這是操做系統權限問題。cmd必須經過系統管理員運行才行!!!

從開始菜單定位到cmd 右鍵 以管理員身份運行。

從新定位到D:\nosql\mongodb\mongodb-win32-i386-2.0.6\bin目錄

執行上面的批處理,而後查看日誌:D:\nosql\mongodb\logs\mongodb.log 

多出一部分:

Creating service MongoDB.
Service creation successful.
Service can be started from the command line via 'net start "MongoDB"'.
Tue Jan 15 10:50:33 dbexit: 
Tue Jan 15 10:50:33 shutdown: going to close listening sockets...
Tue Jan 15 10:50:33 shutdown: going to flush diaglog...
Tue Jan 15 10:50:33 shutdown: going to close sockets...
Tue Jan 15 10:50:33 shutdown: waiting for fs preallocator...
Tue Jan 15 10:50:33 shutdown: closing all files...
Tue Jan 15 10:50:33 closeAllFiles() finished
Tue Jan 15 10:50:33 dbexit: really exiting now

補充一下三個命令:(必須以管理員身份運行cmd,而後執行下面的命令)

啓動MongoDB:net start MongoDB
中止MongoDB:net stop MongoDB
刪除MongoDB:sc delete MongoDB


此時經過services.msc進入服務管理控制檯就能夠看到有一個Mongo DB的服務,這只是顯示名字,單擊查看屬性能夠看到服務名是:MongoDB

此時能夠嘗試啓動mongodb服務,擦。。此次是1053錯誤。。。,(服務沒有及時響應啓動或控制請求)才吃查看日誌:

Tue Jan 15 11:49:55 
Tue Jan 15 11:49:55 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Tue Jan 15 11:49:55 
Tue Jan 15 11:49:55 [initandlisten] MongoDB starting : pid=12540 port=27017 dbpath=D:\nosql\mongodb\data\db"  --directoryperdb  --service   32-bit host=WJH-PC
Tue Jan 15 11:49:55 [initandlisten] 
Tue Jan 15 11:49:55 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Tue Jan 15 11:49:55 [initandlisten] **       see http://blog.mongodb.org/post/137788967/32-bit-limitations
Tue Jan 15 11:49:55 [initandlisten] **       with --journal, the limit is lower
Tue Jan 15 11:49:55 [initandlisten] 
Tue Jan 15 11:49:55 [initandlisten] db version v2.0.6, pdfile version 4.5
Tue Jan 15 11:49:55 [initandlisten] git version: e1c0cbc25863f6356aa4e31375add7bb49fb05bc
Tue Jan 15 11:49:55 [initandlisten] build info: windows sys.getwindowsversion(major=6, minor=0, build=6002, platform=2, service_pack='Service Pack 2') BOOST_LIB_VERSION=1_42
Tue Jan 15 11:49:55 [initandlisten] options: { dbpath: "D:\nosql\mongodb\data\db"  --directoryperdb  --service  ", logappend: true, logpath: "D:\nosql\mongodb\logs\mongodb.log" }
Tue Jan 15 11:49:55 [initandlisten] exception in initAndListen: 10296 dbpath (D:\nosql\mongodb\data\db"  --directoryperdb  --service  ) does not exist, terminating
Tue Jan 15 11:49:55 dbexit: 
Tue Jan 15 11:49:55 [initandlisten] shutdown: going to close listening sockets...
Tue Jan 15 11:49:55 [initandlisten] shutdown: going to flush diaglog...
Tue Jan 15 11:49:55 [initandlisten] shutdown: going to close sockets...
Tue Jan 15 11:49:55 [initandlisten] shutdown: waiting for fs preallocator...
Tue Jan 15 11:49:55 [initandlisten] shutdown: closing all files...
Tue Jan 15 11:49:55 [initandlisten] closeAllFiles() finished
Tue Jan 15 11:49:55 dbexit: really exiting now


查詢得知是路徑解析錯誤,得修改註冊表!!!

 其實得修改兩個地方,一個是服務的名字一個是路徑。

經過regedit進入註冊表編輯器:

HKEY_LOCAL_MACHINE/SYSTEM/service/MongoDB




雙擊ImagePath

將值修改成:

"D:\nosql\mongodb\mongodb-win32-i386-2.0.6\bin\mongod" --logpath  "D:\nosql\mongodb\logs\mongodb.log"  --logappend  --dbpath  "D:\nosql\mongodb\data\db\\"  --directoryperdb --serviceName MongoDB --service

注意標紅部分是要修改的。

好了,如今能夠啓動服務了。

service_pack='Service Pack 2') BOOST_LIB_VERSION=1_42 Tue Jan 15 13:04:48 [initandlisten] options: { dbpath: "D:\nosql\mongodb\data\db\", directoryperdb: true, logappend: true, logpath: "D:\nosql\mongodb\logs\mongodb.log", service: true, serviceName: "MongoDB" } Tue Jan 15 13:04:48 [initandlisten] waiting for connections on port 27017 Tue Jan 15 13:04:48 [websvr] admin web console waiting for connections on port 28017

相關文章
相關標籤/搜索