启动运行Mongo DB 1.6.3的Windows XP服务时出现1053错误

6

我正在尝试在Windows XP SP 3上安装MongoDB 1.6.3。

我按照MongoDB wiki的说明进行操作。我可以看到已经安装了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:服务未能在及时响应启动或控制请求。
dbpathlogpath 更改为分别为 c:/data/dbc:/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

我相信日志文件已经正确设置并正常工作,但我得到的信息并不有用。
还有一个有用的提示:如果我在命令行中打开一个命令壳并启动MongoDB,则可以无任何问题地运行它。
如果您对我出了什么问题或需要纠正的地方有任何建议,将不胜感激。
3个回答

6
如果logpathdbpath中的一个目录不存在,它将无法启动。因此,请确保路径指向现有目录。
如果路径存在,请查看日志文件以获取有关出错原因的更多信息。
响应您的更新:
我已经能够重现这个问题,并在尝试使用Visual Studio进行调试时注意到错误代码0xc0000417。这是一个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的服务支持仍然存在缺陷

谢谢,我今晚回家后会尝试您的建议,看看是否能解决问题。(我现在在工作,无法访问我的家用台式电脑。)如果有效,我一定会接受您的答案并投票支持。感谢您抽出时间跟进此事。 - duffymo
你说得一点没错。我按照你说的修改了注册表项,一切都很好。服务立即启动,MongoVUE也连接成功了。感谢你的帮助和专业知识。 - duffymo
@duffymo:很高兴我能帮忙!这对我们双方都是有益的教训。 - Niels van der Rest
太棒了,谢谢 - 对我来说,这是注册表键解决了它 :) mongod.exe命令应该在路径中出现错误的转义字符时抛出错误... :( - user32826
哇,我的所有参数都很好,我只需要为配置文件位置的注册表键添加引号。感谢您的提示。 - Yoshiyahu
我曾经遇到过同样的问题,但是似乎服务想要有一个日志文件。mongod --install --service --dbpath D:\mongo\db --logappend --logpath D:\mongo\log\mongo.log。通过查看日志,MongoDB在Windows路径\...上没有任何问题。 - Bakudan

0

我遇到了同样的问题并尝试了一些方法。最终,我找到了解决这个问题的方法。

1.请检查系统组件所涉及的C++ Redistributable for Visual Studio 2015环境

2.我只是重新安装了名为C++ Redistributable for Visual Studio 2015的组件,最终解决了这个问题。


0
我遇到了同样的问题。 我的解决方案是:
更改 mongod.cfg 文件:
注释掉 nmp: 这一行。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接