启动运行 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:服务没有 响应启动或控制 及时提出要求。
将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。
任何关于我哪里出错或更正的建议将不胜感激。
【问题讨论】:
【参考方案1】:如果logpath
或dbpath
中的目录之一不存在,它将无法启动。因此,请确保路径指向现有目录。
如果路径确实存在,请检查日志文件以获取有关问题的更多信息。
响应您的更新
当我尝试使用 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'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的主要内容,如果未能解决你的问题,请参考以下文章