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
但是,每当我使用net start"MongoDB"或服务控制面板时,我收到以下错误:
错误1053:服务未及时响应启动或控制请求.
环境:Windows 7企业版64位MongoDB:1.6.3 pdfile版本4.5
Cia*_*her 140
你检查过你的日志以查看真正的问题吗?
我建议将Mongo安装解压缩到c:\mongodb.
创建c:\mongodb\logs和c:\mongodb\data\db目录.  
然后浏览该c:\mongodb\bin目录并运行以下命令以删除该服务(如果已安装它!):
mongod --remove
然后安装服务,指定日志和数据目录:
mongod --logpath c:\mongodb\logs\mongo.log --dbpath c:\mongodb\data\db --directoryperdb --install
然后,如果启动服务时出现问题,您应该在指定的日志文件中看到原因.
更多信息在这里.
Sta*_*man 17
如果没有为数据目录或日志目录指定绝对文件路径,则会出现相同的Windows错误,但没有日志文件.
我使用了"在Windows 7上安装MongoDB服务"中的信息,在Webiyo上推送以更正已注册的服务参数:
执行以下命令:
mongod --install --rest –master –logpath=C:\mongodb165\logs\mongolog.txt
打开注册表编辑器(regedit.exe),转到HKEY_LOCAL_MACHINE→SYSTEM→CurrentControlSet→Services.
找到MongoDB密钥并将"ImagePath"值设置为:
C:\mongodb165\bin\mongod --service  --rest  --master  --logpath=C:\mongodb165\logs\mongolog.txt  --dbpath=C:\mongodb165\data
将更改保存到注册表并退出注册表编辑器.
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
请注意,如果您直接复制此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调用返回."
我的 mongod.cfg 文件有以下最后两行:
#snmp:
mp:
我不知道为什么那里有一个 mp: 。但是当我手动执行图像路径时
C:\mongodb\bin\mongod.exe --config "C:\mongodb\bin\mongod.cfg" --service
在
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MongoDB
我有
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
所以我将其注释掉,然后服务开始没有任何问题。
对于在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"
对于二进制文件和配置文件路径,与其网站上的路径相比,没有\"\".
我运行了这个命令:
C:\MongoDB\Server\3.4\bin>net start MongoDB
得到这个消息:
该服务未响应控制功能.输入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.
该服务开始运行良好.
这些是我在 Windows 7 上安装 mongoDB 所遵循的步骤
从 mongodb 站点下载 .msi 文件--> https://www.mongodb.com/download-center?jmp=nav#community并运行它
无论您的 mondoDb 下载到何处(通常在 c 驱动器 Program Files 文件夹中),请转到该文件夹,并且同一文件夹中的 bin 文件夹在何处创建您的数据文件夹和日志文件夹
3.Inside你的数据文件夹创建你的db文件夹
现在以管理员身份打开命令提示符。
更改文件路径并进入 bin 文件夹。(在本例中为 c>program files>MongoDB>bin> )
输入以下命令:mongod --directoryperdb --dbpath "C:/Program Files\MongoDB\data" --logpath "C:\Program Files\MongoDB\log\mongo.log" --logappend --rest --安装
这将设置日志路径和数据库路径。最后运行net start MongoDB。希望这可以帮助。