Install MongoDB as a windows service

最近打算尝试MongoDB,按照官网方法在windows上安装服务遇到问题。

然后用中文搜到的结果其实不是最佳解决方案,所以觉得有必要写个中文的流程,主要就是个翻译的工作吧。

 1、官方文档的命令是

mongod --bind_ip 0.0.0.0 --logpath d:\mongo\logs --logappend --dbpath d:\mongo\data --directoryperdb --install

 2、查看系统服务,找到MongoDB,执行运行,返回1053错误!

这个问题部分中文搜索结果是用vbs脚本替代了windows service,其实再走一步就是彼岸。

 3、解决问题

先看看log:

Tue Mar 22 12:20:04 [initandlisten] MongoDB starting : pid=2744 port=27017 dbpath=D:\Data\MongoDB" --directoryperdb --serviceName MongoDB --install 64-bit 
Tue Mar 22 12:20:04 [initandlisten] db version v1.8.0, pdfile version 4.5
Tue Mar 22 12:20:04 [initandlisten] git version: 9c28b1d608df0ed6ebe791f63682370082da41c0
Tue Mar 22 12:20:04 [initandlisten] build sys info: windows (6, 1, 7600, 2, '') BOOST_LIB_VERSION=1_42
Tue Mar 22 12:20:04 [initandlisten] exception in initAndListen std::exception: dbpath (D:\Data\MongoDB
" --directoryperdb --serviceName MongoDB --install) does not exist, terminating
Tue Mar 
22 12:20:04 dbexit: 
Tue Mar 
22 12:20:04 [initandlisten] shutdown: going to close listening sockets...
Tue Mar 
22 12:20:04 [initandlisten] shutdown: going to flush diaglog...
Tue Mar 
22 12:20:04 [initandlisten] shutdown: going to close sockets...

...

 可以看到是解析db路径的地方出了问题,于是又搜了搜英文结果,果然发现了解决方法:

 在注册表中找到

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MongoDB

 找到服务命令,把最后的

... --directoryperdb MongoDB --service

 改为

... --directoryperdb --serviceName MongoDB --service

 再次启动服务,服务正常工作,正常的启动日志是:

Tue Mar 22 12:22:07 [initandlisten] MongoDB starting : pid=3096 port=27017 dbpath=D:\Data\MongoDB 64-bit 
Tue Mar 
22 12:22:07 [initandlisten] db version v1.8.0, pdfile version 4.5
Tue Mar 
22 12:22:07 [initandlisten] git version: 9c28b1d608df0ed6ebe791f63682370082da41c0
Tue Mar 
22 12:22:07 [initandlisten] build sys info: windows (6, 1, 7600, 2, '') BOOST_LIB_VERSION=1_42
Tue Mar 
22 12:22:07 [initandlisten] waiting for connections on port 27017
Tue Mar 
22 12:22:07 [websvr] web admin interface listening on port 28017

...

 路径正确了。

5、另外不要忘了还要在Windows 2008 R2的防火墙中打开27017和28017端口,在入站规则里加一条就行了。

 

posted @ 2011-03-22 22:41  chinajuanbob  阅读(1458)  评论(3编辑  收藏  举报