如何设置 MongoDB 以便它可以作为 Windows 服务运行?

有帮助吗?

解决方案

我认为,如果你用--install命令行开关运行它,它会安装它作为Windows服务。

mongod --install

这可能是值得阅读这个线程第一虽然。似乎有一些问题时,相关的注册表项被写入相对/绝对路径。

其他提示

努力了几个小时后,我终于做到了。

请确保您添加的<MONGODB_PATH>\bin目录系统变量PATH

首先,我执行该命令:

D:\mongodb\bin>mongod --remove

然后,我打开命令提示管理员之后执行此命令:

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

在在那里命令提示执行:

services.msc

和寻找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

不仅--install

还需要--dbpath--logpath

和重启OS后需要删除的 “mongod.lock ” 手动

不同于其他答案这将..

<强>自动启动服务ON系统重启/ RESTART

的MongoDB安装

(1)安装的MongoDB

(2)添加到仓路径

(3)创建C:\数据\分贝

(4)创建C:\数据\日志

(5)创建C:\数据\ mongod.cfg与内容..

systemLog:
    destination: file
    path: c:\data\log\mongod.log
storage:
    dbPath: c:\data\db

(6)要创建的服务,将的在重新启动时自动开始 .. 生成AS管理 ..

sc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe\" --service --config=\"C:\data\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"

(7)开始运行AS ADMIN ..

的服务..
net start MongoDB

重要:即使这个说“MongoDB的服务已成功启动”它可能会失败

要仔细检查打开控制面板>服务,确保的MongoDB服务的状态是“正在运行”

如果不是,在c。检查你的日志文件:\ DATA \日志\ mongod.log对于失败的原因,并修复它

(不要通过控制面板>服务,使用..净开始MongoDB的开始的MongoDB)

(8)最后,重新启动机器用的MongoDB运行,它仍然会在重新启动运行

如果你想杀死它..

net stop MongoDB

sc.exe delete MongoDB
  

在下面的步骤适用于Windows。

在的行政 cmd下面运行

mongod --remove

此将移除现有的MongoDB服务(如果有的话)。

mongod --dbpath "C:\data\db" --logpath "C:\Program Files\MongoDB\Server\3.4\bin\mongod.log" --install --serviceName "MongoDB"

确保C:\data\db文件夹存在

与Open服务:

services.msc

查找的MongoDB - >右键 - >启动

您可以使用下面的命令将 mongodb 作为 Windows 服务运行

"C:\mongodb\bin\mongod" --bind_ip  yourIPadress  --logpath  "C:\data\dbConf\mongodb.log"  --logappend  --dbpath  "C:\data\db"  --port yourPortNumber --serviceName "YourServiceName" --serviceDisplayName "YourServiceName" --install 

如果使用带有默认参数的 mongodb,则可以使用以下值:

  • 您的IP地址:127.0.0.1 或本地主机
  • 您的端口号:27017(默认端口)或不要输入--port
  • 服务显示名称:仅当您运行多个服务时(自 mongodb 1.8 起)

这里有关于这个命令的更多信息

http://www.mongodb.org/display/DOCS/Windows+Service

此PowerShell脚本下载和安装的MongoDB作为Windows服务:

Set-ExecutionPolicy RemoteSigned

$mongoDbPath = "C:\MongoDB" 
$mongoDbConfigPath = "$mongoDbPath\mongod.cfg"
$url = "http://downloads.mongodb.org/win32/mongodb-win32-x86_64-2008plus-2.4.9.zip" 
$zipFile = "$mongoDbPath\mongo.zip" 
$unzippedFolderContent ="$mongoDbPath\mongodb-win32-x86_64-2008plus-2.4.9"

if ((Test-Path -path $mongoDbPath) -eq $True) 
{ 
  write-host "Seems you already installed MongoDB"
    exit 
}

md $mongoDbPath 
md "$mongoDbPath\log" 
md "$mongoDbPath\data" 
md "$mongoDbPath\data\db"

[System.IO.File]::AppendAllText("$mongoDbConfigPath", "dbpath=C:\MongoDB\data\db`r`n")
[System.IO.File]::AppendAllText("$mongoDbConfigPath", "logpath=C:\MongoDB\log\mongo.log`r`n")
[System.IO.File]::AppendAllText("$mongoDbConfigPath", "smallfiles=true`r`n")
[System.IO.File]::AppendAllText("$mongoDbConfigPath", "noprealloc=true`r`n")

$webClient = New-Object System.Net.WebClient 
$webClient.DownloadFile($url,$zipFile)

$shellApp = New-Object -com shell.application 
$destination = $shellApp.namespace($mongoDbPath) 
$destination.Copyhere($shellApp.namespace($zipFile).items())

Copy-Item "$unzippedFolderContent\*" $mongoDbPath -recurse

Remove-Item $unzippedFolderContent -recurse -force 
Remove-Item $zipFile -recurse -force

& $mongoDBPath\bin\mongod.exe --config $mongoDbConfigPath --install

& net start mongodb

我尝试了所有答案,然后就这样做了 https://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/#configure-a-windows-service-for-mongodb-community-edition 描述它。

使用配置文件...

"C:\mongodb\bin\mongod.exe" --config "C:\mongodb\mongod.cfg" --install

这是只为我工作的事情。如一切都必须绝对路径:

C:\Program Files\MongoDB\Server\3.2\bin>mongod --install --dbpath=c:/data/db --logpath=c:/data/logs/log.txt

我也不得不从admin cmd运行它

的推荐方法mongod --install导致错误:

2015-12-03T18:18:28.896+0100 I CONTROL  --install has to be used with a log file for server output

C:\mongodb具有安装后的mongodb需要简单地添加日志路径:

mongod --install --logpath C:\mongodb\logs\mongo.log

到日志文件的路径必须存在,并且它必须是一个绝对的Windows路径。然后,你键入以下命令启动MongoDB的服务:

net start MongoDB

考虑使用

mongod --install --rest --master

在蒙戈DB工作:3.6

(1)安装的MongoDB

(2)添加到仓环境路径变量

(3)创建c:\data\db

(4)创建c:\data\mongod.log

(5)上bin文件夹中运行下面的命令

  

\ mongod.exe --install --logpath C:\数据\ mongod.log --logappend   --bind_ip 12   7.0.0.1 --dbpath C:\数据\分贝

(6)要启动蒙戈分贝为服务

  

网络启动的MongoDB

(7)最后运行mongo在命令行来检查蒙戈外壳是打开的或不

1) echo logpath=F:\mongodb\log\mongo.log > F:\mongodb\mongod.cfg

2) dbpath=F:\mongodb\data\db [add this to the next line in mongod.cfg]

C:\>F:\mongodb\bin\mongod.exe –config F:\mongodb\mongod.cfg –install

参考

这是对我工作:

sc.exe create MongoDB binPath= "d:\MongoDB\bin\mongod.exe --service --config=d:\MongoDB\bin\mongod.config" displayname= "MongoDB 2.6 Standard" start= "auto"

逸出binPath是失败对我为蒙戈文档中所描述

失败:

sc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB 2.6 Standard\bin\mongod.exe\" --service --config=\"C:\Program Files\MongoDB 2.6 Standard\mongod.cfg\"" DisplayName= "MongoDB 2.6 Standard" start= "auto"

最简单的方法是,

  1. 创建文件夹 C:\data\db
  2. 创建文件 C:\data\db\log.txt
  3. 以“以管理员身份运行”打开命令提示符,并确保 mogodb bin 目录路径正确并写入

    C:\Program Files\MongoDB\Server\3.4\bin> mongod.exe --install mongod --dbpath="c:\data\db" --logpath="c:\data\db\log.txt" 
    
  4. 启动mongodb服务:

    net run MongoDB
    

使用 MongoDB 3.4 [Windows]

  • 创建目录 C:/mongodb/data
  • 使用以下配置在 C:/mongodb/mongodb.config 中创建文件:

    storage:
        engine: wiredTiger
        dbPath: "C:/mongodb/data"
        directoryPerDB: true
        journal:
            enabled: true
    systemLog:
        destination: file
        path: "C:/mongodb/data/mongod.log"
        logAppend: true
        timeStampFormat: iso8601-utc
    net:
        bindIp: 127.0.0.1
        port: 27017
        wireObjectCheck : false
    
  • 要将 MongoDb 安装为服务,请使用管理员权限在 powershell 中运行此命令

    mongod --config="C:\mongodb\mongodb.config" --install --service

  • 打开Services.msc并查找MongoDb,然后启动它

有关2.4.3版本(当前版本发布日期的),创建一个配置文件,然后执行下列操作:

C:\MongoDB\bin\mongod.exe --config C:\MongoDB\mongod.cfg --service

目前(高达2.4.4版本),如果任何路径(DBPATH /日志路径/配置)中包含空格,则服务将不会启动,并显示错误消息:“服务没有响应控制功能”

我在2.4.9版本,并使用配置文件。该服务将无法启动,直到我包围了平等与空间配置文件签名:

dbpath = D:\Mongo data
logpath = C:\mongodb\logs\mongo.log 
logappend = true

我本来:

logpath=C:\mongodb\logs\mongo.log 

我还发现,安装服务时,你必须要使用的配置文件,例如绝对路径:

c:\mongodb\bin\>mongodb.exe C:\mongodb\bin\mongod.conf --install

不要试图把引号一个的 DBPATH 的周围空间。该服务将出现,当你执行开始的网络启动MongoDB的的,但它会终止。检查日志文件以确认该服务已真正开始。

运行“cmd.exe的”以管理员身份,然后运行“SC.EXE”添加新的Windows服务。

例如:

sc.exe create MongoDB binPath= "c:\program files\mongodb\server\3.2\bin\mongod.exe"

我发现,你应该通过:DBPATH,配置和日志文件与安装标志,以mongod的

示例:

mongod --dbpath=c:\data\db --config=c:\data\db\config.cfg --logpath=c:\data\db\log.txt --install 

请注意:我在我的PATH变量mongod的路径。

可以控制与服务:

net start mongodb
net stop  mongodb 

以下是将 MongoDB 安装为 Windows 服务的步骤:

  1. 创建一个日志目录,例如 C:\MongoDB\log

  2. 创建一个 db 目录,例如 C:\MongoDB\db

  3. 准备一个包含以下几行的配置文件

    dbpath=C:\MongoDB\db

    logpath=C:\MongoDB\log

    将名为 mongod.cfg 的配置文件放在文件夹“C:\MongoDB\”中

  4. 以下命令将在您的计算机上安装 Windows 服务sc.exe create MongoDB binPath= "\"C:\MongoDB\Server\3.4\bin\mongod.exe\" --service --config=\"C:\MongoDB\mongod.cfg\" DisplayName= "MongoDB 3.4" start= "auto"

  5. 运行此命令后,您将得到 [SC] CreateService SUCCESS

  6. 在命令提示符下运行以下命令

    net start MongoDB

如果您使用以下命令安装 MongoDB 2.6.1 或更高版本 微星下载 从一个 管理员命令提示符, ,应该会自动为您创建一个服务定义。

MongoDB 文档还有一个教程可以帮助您 手动创建 Windows 服务 如果需要的话定义。

这个答案适用于那些已经使用 MSI 安装程序安装了 mongo DB 的人。

假设您的默认安装位置是“C:\Program Files\MongoDB\Server\3.2\bin”

将 mongo 作为窗口服务运行的步骤

  1. 以管理员身份打开命令提示符
  2. 类型 cd C:\Program Files\MongoDB\Server\3.2\bin (正确检查路径,因为您可能安装了不同的版本,而不是 3.2)。
  3. 按回车键
  4. 类型 net start MongoDB
  5. 按回车键
  6. 按 Windows + R,输入 services.msc 并检查 Mongo 是否作为服务运行。
mongod --config "C:\Program Files\MongoDB\Server\3.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary"
  1. 检查Windows服务

    如果您有 mongo 服务,请通过运行以下命令将其删除
    mongod --remove

  2. 创建包含以下内容的 mongo.cfg 文件

    系统日志:
    目的地:文件
    小路:c:\data\log\mongod.log
    贮存:
    数据库路径:c:\数据\数据库

    小路:您想要存储日志数据的位置
    数据库路径:你的数据库目录

  3. 然后运行以下命令

    sc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe\" --service --config=\"C:\Program Files\MongoDB\Server\3.2\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"

    bin路径:mongodb安装目录
    配置:.cfg 文件地址
    显示名称:您的服务名称

  4. 启动服务

    net start MongoDB

现在每件事都完成了。享受那个

在我的情况下,我创建mongd.exe旁边的mongod.cfg具有以下内容。

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: D:\apps\MongoDB\Server\4.0\data
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path:  D:\apps\MongoDB\Server\4.0\log\mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0


#processManagement:

#security:

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:

然后我运行任一所述两个命令创建该服务。

D:\apps\MongoDB\Server\4.0\bin>mongod --config D:\apps\MongoDB\Server\4.0\bin\mongod.cfg --install

D:\apps\MongoDB\Server\4.0\bin>net stop mongodb
The MongoDB service is stopping.
The MongoDB service was stopped successfully.


D:\apps\MongoDB\Server\4.0\bin>mongod --remove
2019-04-10T09:39:29.305+0800 I CONTROL  [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2019-04-10T09:39:29.309+0800 I CONTROL  [main] Trying to remove Windows service 'MongoDB'
2019-04-10T09:39:29.310+0800 I CONTROL  [main] Service 'MongoDB' removed

D:\apps\MongoDB\Server\4.0\bin>
D:\apps\MongoDB\Server\4.0\bin>sc.exe create MongoDB binPath= "\"D:\apps\MongoDB\Server\4.0\bin\mongod.exe\" --service --config=\"D:\apps\MongoDB\Server\4.0\bin\mongod.cfg\""
[SC] CreateService SUCCESS

D:\apps\MongoDB\Server\4.0\bin>net start mongodb
The MongoDB service is starting..
The MongoDB service was started successfully.

D:\apps\MongoDB\Server\4.0\bin>

以下是不正确的,注意转义引号是必需的。

D:\apps\MongoDB\Server\4.0\bin>sc.exe create MongoDB binPath= "D:\apps\MongoDB\Server\4.0\bin\mongod --config D:\apps\MongoDB\Server\4.0\bin\mongod.cfg"
[SC] CreateService SUCCESS

D:\apps\MongoDB\Server\4.0\bin>net start mongodb
The service is not responding to the control function.

More help is available by typing NET HELPMSG 2186.


D:\apps\MongoDB\Server\4.0\bin>

请尝试 Mongo DB 中的步骤:3.6 和 Windows 10

  1. mongod --remove
  2. mongod --dbpath=C:/data/db --port 27017 --logpath C:/data/log/log.txt --service
  3. mongod --dbpath=C:/data/db --port 27017 --logpath C:/data/log/log.txt --install
  4. net start MongoDB
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top