无法启动MongoDB作为服务

Mar*_*ich 64 windows-services mongodb

我已经为MongoDB开发了几个月了,并希望将它作为服务安装在我的Windows 7 Enterprise机器上.以下是我为创建服务而执行的命令:

"D:\Milvia Systems\Development\MongoDB\mongod.exe" --logpath "D:\Milvia Systems\Development\MongoDB\logs\DBLog.log" --logappend --dbpath "D:\Milvia Systems\Development\MongoDB\db" -vvv --reinstall
Run Code Online (Sandbox Code Playgroud)

但是,每当我使用net start"MongoDB"或服务控制面板时,我收到以下错误:

错误1053:服务未及时响应启动或控制请求.

环境:Windows 7企业版64位MongoDB:1.6.3 pdfile版本4.5

Cia*_*her 140

你检查过你的日志以查看真正的问题吗?

我建议将Mongo安装解压缩到c:\mongodb.

创建c:\mongodb\logsc:\mongodb\data\db目录.

然后浏览该c:\mongodb\bin目录并运行以下命令以删除该服务(如果已安装它!):

mongod --remove
Run Code Online (Sandbox Code Playgroud)

然后安装服务,指定日志和数据目录:

mongod --logpath c:\mongodb\logs\mongo.log --dbpath c:\mongodb\data\db --directoryperdb --install
Run Code Online (Sandbox Code Playgroud)

然后,如果启动服务时出现问题,您应该在指定的日志文件中看到原因.

更多信息在这里.

  • 谢谢你...在Windows 8 x64上工作 (2认同)

Sta*_*man 17

如果没有为数据目录或日志目录指定绝对文件路径,则会出现相同的Windows错误,但没有日志文件.

我使用了"在Windows 7上安装MongoDB服务"中的信息,在Webiyo上推送以更正已注册的服务参数:

  1. 下载MongoDB并将其解压缩到C:\驱动器.
  2. 在"C:\ mongodb165"目录下添加"data"和"logs"子目录.
  3. 在"C:\ mongodb165\logs\mongolog.txt"中添加日志文件名"mongolog.txt".
  4. 将目录更改为"C:\ mongodb165\bin".
  5. 执行以下命令:

    mongod --install --rest –master –logpath=C:\mongodb165\logs\mongolog.txt
    
    Run Code Online (Sandbox Code Playgroud)
  6. 打开注册表编辑器(regedit.exe),转到HKEY_LOCAL_MACHINE→SYSTEM→CurrentControlSet→Services.

  7. 找到MongoDB密钥并将"ImagePath"值设置为:

    C:\mongodb165\bin\mongod --service  --rest  --master  --logpath=C:\mongodb165\logs\mongolog.txt  --dbpath=C:\mongodb165\data
    
    Run Code Online (Sandbox Code Playgroud)
  8. 将更改保存到注册表并退出注册表编辑器.

  9. 打开ComponentServices,单击"Services(Local)",找到MongoDB服务.启动它.
  10. 检查URL http:// localhost:28017 /以验证MongoDB是否返回统计信息.


Don*_*ary 11

我刚刚在Windows 7机器上遇到了同样的问题.我按照MongoDBs Docs中的指示进行安装,但除非我在"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
Run Code Online (Sandbox Code Playgroud)

请注意,如果您直接复制此ImagePath值并且您的"data"文件夹位于mongodb目录而不是C:\,请将以下行添加到"mongod.cfg"文件中: dbpath=C:\mongodb\data\db

在我这样做之后,当我运行"net stop MongoDB"时,我收到消息"系统错误109已经发生.管道已经结束." 你也可以看到它.此消息已在jira.mongodb.org上进行了详细讨论.

为了节省您阅读整个来回讨论的时间,Tad Marshalls的帖子总结了这个问题:

"...它在2.1.0中工作正常;后来的更改再次破坏了它.但是,是的,你在当前代码中得到了这个错误信息.

解释是mongod.exe从Windows服务控制管理器创建的回调线程退出时,由于"net stop mongodb"而调用我们,这打破了用于创建回调线程的RPC管道.我们需要重新组织退出逻辑以避免这样做.

错误消息是此问题唯一真正的影响; 我们完全退出命令,并通知Windows服务控制管理器我们已经停止,但是"net"命令显示一条错误消息,因为我们没有像预期的那样从RPC调用返回."


JL_*_*_SO 7

我的 mongod.cfg 文件有以下最后两行:

#snmp:
mp:
Run Code Online (Sandbox Code Playgroud)

我不知道为什么那里有一个 mp: 。但是当我手动执行图像路径时

C:\mongodb\bin\mongod.exe --config "C:\mongodb\bin\mongod.cfg" --service
Run Code Online (Sandbox Code Playgroud)

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MongoDB
Run Code Online (Sandbox Code Playgroud)

我有

c:\mongodb\bin>mongod /?C:\mongodb\bin\mongod.exe --config "C:\mongodb\bin\mongod.cfg" --service
Unrecognized option: mp
try 'mongod --help' for more information
Run Code Online (Sandbox Code Playgroud)

所以我将其注释掉,然后服务开始没有任何问题。


Che*_*hen 5

对于在Windows Server 2012上可能遇到相同问题的其他人:

我在Windows Server 2012上遇到了与Mongo 3.0.3相同的问题.我不是系统管理员所以我不知道他们为sc.exe更改了什么.我必须使用

sc.exe create MongoDB binPath= "C:\mongodb\bin\mongod.exe --service --config=C:\mongodb\mongod.cfg" DisplayName= "MongoDB" start= "auto"
Run Code Online (Sandbox Code Playgroud)

对于二进制文件和配置文件路径,与其网站上的路径相比,没有\"\".


Irs*_*han 5

我运行了这个命令:

C:\MongoDB\Server\3.4\bin>net start MongoDB
Run Code Online (Sandbox Code Playgroud)

得到这个消息:

该服务未响应控制功能.输入NET HELPMSG 2186可获得更多帮助.

经过一些试验和错误之后,我注意到在学习本教程时它要求我命名我的文件mongod.conf,但命令试图引用mongod.cfg.

一旦我更正了该名称并重新运行命令,

C:\MongoDB\Server\3.4\bin>sc.exe delete MongoDB
[SC] DeleteService SUCCESS

C:\MongoDB\Server\3.4\bin>sc.exe create MongoDB binPath= "\"C:\MongoDB\Server\3.4\bin\mongod.exe\" --service --config=\"C:\MongoDB\Server\3.4\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
[SC] CreateService SUCCESS

C:\MongoDB\Server\3.4\bin>net start MongoDB
The MongoDB service is starting....
The MongoDB service was started successfully.
Run Code Online (Sandbox Code Playgroud)

该服务开始运行良好.


San*_*han 5

这些是我在 Windows 7 上安装 mongoDB 所遵循的步骤

  1. 从 mongodb 站点下载 .msi 文件--> https://www.mongodb.com/download-center?jmp=nav#community并运行它

  2. 无论您的 mondoDb 下载到何处(通常在 c 驱动器 Program Files 文件夹中),请转到该文件夹​​,并且同一文件夹中的 bin 文件夹在何处创建您的数据文件夹日志文件夹

3.Inside你的数据文件夹创建你的db文件夹

结构看起来像这样

  1. 现在以管理员身份打开命令提示符。

  2. 更改文件路径并进入 bin 文件夹。(在本例中为 c>program files>MongoDB>bin> )

  3. 输入以下命令:mongod --directoryperdb --dbpath "C:/Program Files\MongoDB\data" --logpath "C:\Program Files\MongoDB\log\mongo.log" --logappend --rest --安装

  4. 这将设置日志路径和数据库路径。最后运行net start MongoDB。希望这可以帮助。