首先 下載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