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

Posted

技术标签:

【中文标题】启动运行 Mongo DB 1.6.3 的 Windows XP 服务时出现错误 1053【英文标题】:Error 1053 When Starting Windows XP Service Running Mongo DB 1.6.3 【发布时间】:2011-04-17 11:03:01 【问题描述】:

我正在尝试在我的 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

所以我相信日志文件设置正确并且工作正常,但我得到的信息没有帮助。

还有一点有用:如果我打开命令 shell 并在命令行上启动它,我可以毫无问题地运行 MongoDB。

任何关于我哪里出错或更正的建议将不胜感激。

【问题讨论】:

【参考方案1】:

如果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" --directoryperdbMongoDB--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's service support is still flawed。

【讨论】:

谢谢你,我今晚回家时会试试你的建议,看看能不能解决问题。 (我现在在工作,无法访问我的家庭桌面。)如果它有效,我肯定会接受你的回答并投票赞成。感谢您抽出宝贵时间跟进。 你是正确的。我完全按照你说的修改了注册表项,一切都很好。该服务立即启动,MongoVUE 立即连接。感谢您的帮助和专业知识。 @duffymo:很高兴我能帮上忙!这对我们俩都有启发。 太棒了,谢谢 - 是为我获得它的注册表项 :) mongod.exe 命令确实应该在路径中的流氓转义字符上引发错误... :( 哇。我所有的参数都很好,我只需要为配置文件位置的注册表项添加引号。感谢您的提示。【参考方案2】:

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

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

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

【讨论】:

【参考方案3】:

我遇到了同样的问题。 我的解决方案:

更改mongod.cfg 文件:

评论nmp:这一行

【讨论】:

以上是关于启动运行 Mongo DB 1.6.3 的 Windows XP 服务时出现错误 1053的主要内容,如果未能解决你的问题,请参考以下文章

Mongo DB 安装(window)

ubantu14.04 启动mongo db

Linux启动mongo db后台服务

docker常用命令之mongodb启动带上现有的数据文件

docker常用命令之mongodb启动带上现有的数据文件

从 WiredTiger 文件恢复损坏的 mongo db