dsqzhaoyue 发表于 2015-7-6 06:51:29

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 MongoDB starting : pid=2744 port=27017 dbpath=D:\Data\MongoDB" --directoryperdb --serviceName MongoDB --install 64-bit
Tue Mar 22 12:20:04 db version v1.8.0, pdfile version 4.5
Tue Mar 22 12:20:04 git version: 9c28b1d608df0ed6ebe791f63682370082da41c0
Tue Mar 22 12:20:04 build sys info: windows (6, 1, 7600, 2, '') BOOST_LIB_VERSION=1_42
Tue Mar 22 12:20:04 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 shutdown: going to close listening sockets...
Tue Mar 22 12:20:04 shutdown: going to flush diaglog...
Tue Mar 22 12:20:04 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 MongoDB starting : pid=3096 port=27017 dbpath=D:\Data\MongoDB 64-bit
Tue Mar 22 12:22:07 db version v1.8.0, pdfile version 4.5
Tue Mar 22 12:22:07 git version: 9c28b1d608df0ed6ebe791f63682370082da41c0
Tue Mar 22 12:22:07 build sys info: windows (6, 1, 7600, 2, '') BOOST_LIB_VERSION=1_42
Tue Mar 22 12:22:07 waiting for connections on port 27017
Tue Mar 22 12:22:07 web admin interface listening on port 28017  ...

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

  
页: [1]
查看完整版本: Install MongoDB as a windows service