我在Windows 7电脑上也遇到了同样的问题。我按照MongoDB文档中的说明进行安装,但除非我在“C:\”目录下,否则它不会让我执行“net start MongoDB”。尽管如此,我不想返回并重新安装MongoDB以遵循上面引用的Webiyo链接中包含的说明。如果您已根据他们的文档安装了MongoDB,并且想要能够从任何项目目录处执行“net start MongoDB”:
前往HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > services > MongoDB
在Name列下双击ImagePath
粘贴以下ImagePath(编辑文件夹目录和名称以满足您的需求):
C:\mongodb\bin\mongod.exe --service --rest --master --logpath=C:\mongodb\log\mongolog.txt --dbpath=C:\mongodb\data\db --config C:\mongodb\mongod.cfg
请注意,如果您直接复制此 ImagePath 值,并且您的“data”文件夹位于 mongodb 目录中而不是 C:\ 中,请在“mongod.cfg”文件中添加以下行:
dbpath=C:\mongodb\data\db
我这样做后,当我运行“net stop MongoDB”时,我收到消息“系统错误 109。管道已终止。” 您也可能会看到它。这个问题已经在
jira.mongodb.org 上得到了充分讨论。
为了节省您阅读所有来回讨论的时间,Tad Marshall 的帖子总结了这个问题:
“... 在2.1.0中它还可以正常工作;之后的更改再次破坏了它。但是是的,您在当前的代码中会遇到此错误消息。”
解释是 mongod.exe 正在从 Windows 服务控制管理器创建的回调线程退出时调用我们,因为它由于 “net stop mongodb” 而调用我们,这会中断它用于创建回调线程的 RPC 管道。我们需要重新组织我们的退出逻辑以避免这样做。
错误消息是这个问题唯一的真实效果; 我们按命令退出,干净地通知 Windows 服务控制管理器我们已停止,但然后“net”命令显示错误消息,因为我们没有以它希望的方式从 RPC 调用中返回。