MongoDB运行并且永不停止

10 浏览
0 Comments

MongoDB运行并且永不停止

如何将MongoDB配置为Windows服务以使其运行?

0
0 Comments

问题出现的原因是在运行MongoDB时没有使用正确的参数,需要使用--install--dbpath--logpath来正确设置数据库路径和日志路径。另外,在重新启动操作系统后,需要手动删除"mongod.lock"文件。

解决方法是在运行MongoDB时使用正确的参数,并在重新启动操作系统后手动删除"mongod.lock"文件。另外,更好的方法是通过指定--config参数来定义数据库路径、日志路径和其他选项。

在我使用的Windows 8 x64系统上,这个mongod.lock bug已经被修复。

0
0 Comments

问题:MongoDB运行后不停止的原因和解决方法

在安装MongoDB时,如果使用--install命令行参数,它会将其安装为Windows服务。但是在相关注册表键写入时,可能会出现相对路径或绝对路径的问题。可参考此讨论串

下面是一些解决方法:

1. 执行mongod.exe --service命令进行安装。

2. 在命令行中输入完整路径:c:\> c:\mongodb\bin\mongod.exe --service。注意以管理员身份运行命令行窗口(尤其是在Windows服务器上),否则可能会受到UAC的限制。

3. 可以使用此Gist来简化开发环境的设置。

4. 使用net start MongoDB命令启动服务(在使用--install参数后)。

5. 确保按照MongoDB官方文档中的步骤进行操作。

另外,启动MongoDB服务时需要指定日志文件路径和数据库路径,可以使用mongod --dbpath="c:\data\db" --logpath="c:\data\db\log.txt" --install命令进行设置。

需要注意的是,如果以普通用户身份运行命令,则命令将会悄无声息地完成,但不会添加服务。因此,需要以管理员身份运行mongod --install命令,并确保运行net start MongoDB命令。

MongoDB运行后不停止的问题可能是由于安装时使用了错误的命令行参数或未按照正确的步骤进行操作所致。通过使用正确的命令行参数和以管理员身份运行命令,可以解决该问题。

0
0 Comments

问题:MongoDB运行后无法停止的原因及解决方法

在尝试了几个小时后,我终于成功了。

确保以下内容:

1. 添加<MONGODB_PATH>\bin目录到系统变量PATH

2. 以管理员身份运行命令提示符

步骤:

第一步:执行以下命令:

D:\mongodb\bin>mongod --remove

第二步:以管理员身份运行命令提示符后,执行以下命令:

D:\mongodb\bin>mongod --dbpath=D:\mongodb --logpath=D:\mongodb\log.txt --install

注意:你也可以在上述命令后添加--serviceName MongoDB

完成以上步骤后,在命令提示符中执行以下命令:

services.msc
// 或者
net start MongoDB

找到MongoDB服务并点击启动。

注意:确保以管理员身份运行命令提示符。

如果不这样做,你的日志文件(在上面的例子中是D:\mongodb\log.txt)将包含以下行:

2016-11-11T15:24:54.618-0800 I CONTROL  [main] Trying to install Windows service 'MongoDB'
2016-11-11T15:24:54.618-0800 I CONTROL  [main] Error connecting to the Service Control Manager: Access is denied. (5)

如果你尝试从非管理员控制台启动服务(例如在PowerShell中使用net start MongoDBStart-Service MongoDB),你将得到以下响应:

System error 5 has occurred.

Access is denied.

或者:

Start-Service : Service 'MongoDB (MongoDB)' cannot be started due to the following error: Cannot open MongoDB service

on computer '.'.

At line:1 char:1

+ Start-Service MongoDB

+ ~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [Start-Service],

ServiceCommandException

+ FullyQualifiedErrorId : CouldNotStartService,Microsoft.PowerShell.Commands.StartServiceComman

你也可以使用net start MongoDB而不是使用services.msc来启动它。(mongod建议我这样做。)

这对我起作用了。如果日志文件的路径不存在,需要手动创建它(在示例中,我使用了与mongo目录不同的路径)。

起初,Mongo作为一个服务启动,但我的数据库是空的。只有在路径后添加\数据,我才能看到我先前存在的数据库:mongod --dbpath=D:\mongodb\data

“确保以管理员身份运行命令提示符”- 这就是解决方法!以普通权限运行不会有任何警告,但服务只是没有被创建。权限,权限,权限!

前两个答案都不能在重启后保持服务运行状态 - 参见下面的我的答案。

对我来说,mongod --remove是关键,因为我有一个旧的安装位置,而--install不能自动覆盖新位置。

应该是验证过的答案。

0