我正在尝试在我的Windows XP SP 3机器上设置MongoDB 1.6.3.
我按照MongoDB维基的说明进行操作.我可以看到Windows服务已安装但尚未启动.
可执行文件的路径如下所示:
"C:\Tools\mongodb-win32-i386-1.6.3\bin\mongod" --bind_ip 127.0.0.1 --logpath c:/mongodb/logs/mongodb.log --logappend --dbpath "c:/mongodb/data" --directoryperdb MongoDB --service
当我尝试启动服务时,我收到一条错误弹出窗口,显示以下消息:
错误1053:服务未及时响应启动或控制请求.
改dbpath
和logpath
以c:/data/db
和c:/data/logs/mongodb.log
分别,但结果却是一样的.
我已经检查过以确保所有目录和文件确实存在 - 不用担心.
我刚刚在美国东部时间下午1点18分再次尝试,得到了同样的错误,并在日志文件中看到了这个:
Sun Sep 26 13:18:15 dbexit: Sun Sep 26 13:18:15 shutdown: going to close listening sockets... Sun Sep 26 13:18:15 shutdown: going to flush oplog... Sun Sep 26 13:18:15 shutdown: going to close sockets... Sun Sep 26 13:18:15 shutdown: waiting for fs preallocator... Sun Sep 26 13:18:15 shutdown: closing all files... Sun Sep 26 13:18:15 closeAllFiles() finished Sun Sep 26 13:18:15 dbexit: really exiting now
所以我相信日志文件已正确设置并正常工作,但我得到的信息没有帮助.
另一个有用的一点:如果我打开一个命令shell并在命令行启动它,我可以毫无问题地运行MongoDB.
任何关于我出错或更正的建议都将不胜感激.
如果其中一个目录存在logpath
或dbpath
不存在,则无法启动.因此,请确保路径指向现有目录.
如果路径确实存在,请检查日志文件以获取有关出错的更多信息.
0xc0000417
当我尝试使用Visual Studio调试它时,我能够重现该问题并注意到错误代码.这是一个STATUS_INVALID_CRUNTIME_PARAMETER
错误,这意味着将无效参数传递给C运行时函数.
正如您所发布的那样,可执行文件的路径是:
C:\Tools\mongodb-win32-i386-1.6.3\bin\mongod" --bind_ip 127.0.0.1 --logpath c:/mongodb/logs/mongodb.log --logappend --dbpath "c:/mongodb/data" --directoryperdb
MongoDB
--service
现在,当我尝试从命令提示符运行可执行文件时,它失败并显示以下消息:
命令无效:MongoDB
我在上面的路径中突出显示了这个错误的'参数'.它是传递给serviceName
参数的参数,但是--serviceName
指令本身被错误地省略了.正确的路径应该是:
C:\Tools\mongodb-win32-i386-1.6.3\bin\mongod" --bind_ip 127.0.0.1 --logpath c:/mongodb/logs/mongodb.log --logappend --dbpath "c:/mongodb/data" --directoryperdb
--serviceName MongoDB
--service
您可以通过更改ImagePath
以下密钥来编辑注册表中可执行文件的路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MongoDB
另一种选择是serviceName
在安装过程中简单地省略参数,因为MongoDB的服务支持仍然存在缺陷.