如何设置MongoDB以便它可以作为Windows服务运行?
经过几个小时的努力,我终于做到了.
确保将
目录添加到系统变量中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)
如果您尝试从非管理控制台(即net start MongoDB
或Start-Service MongoDB
在PowerShell中)启动该服务,您将得到如下响应:
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
命令行开关运行它,它会将其安装为Windows服务.
mongod --install
不过可能首先要阅读这个帖子.当相关的注册表项被写入时,相对/绝对路径似乎存在一些问题.
不仅如此--install
,
也需要--dbpath
和--logpath
在重新启动操作系统后,您需要手动删除"mongod.lock "
与其他答案不同,这将...
在系统重新启动/重新启动时自动启动服务
MongoDB安装(1)安装MongoDB
(2)将bin添加到路径
(3)创建c:\ data\db
(4)创建c:\ data\log
(5)用内容创建c:\ data\mongod.cfg ..
systemLog: destination: file path: c:\data\log\mongod.log storage: dbPath: c:\data\db
(6)创建将在重新启动时自动启动的服务.运行为管理员 ..
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)启动服务..运行作为管理员..
net start MongoDB
重要提示:即使这说"MongoDB服务已成功启动",也可能失败
要仔细检查打开控制面板>服务,请确保MongoDB服务的状态为"正在运行"
如果没有,请检查C:\ data\log\mongod.log中的日志文件以查找失败原因并进行修复
(不要通过控制面板>服务启动MongoDB,使用.. net start 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
文件夹存在
开放服务:
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与默认参数一起使用,则可以使用以下值:
yourIPadress:127.0.0.1或localhost
yourPortNumber:27017(默认端口)或不要--port
serviceDisplayName:仅当您运行多个服务时(因为mongodb 1.8)
这里有关于此命令的更多信息
http://www.mongodb.org/display/DOCS/Windows+Service
我尝试了所有的答案,然后做了它的方式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
此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
这是唯一对我有用的东西.因为一切都必须是绝对的道路:
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
安装mongodb之后,C:\mongodb
只需添加logpath:
mongod --install --logpath C:\mongodb\logs\mongo.log
日志文件的路径必须存在,并且必须是绝对的Windows路径.然后键入以下命令启动MongoDB服务:
net start MongoDB
考虑使用
mongod --install --rest --master
使用Mongo DB:3.6
(1)安装MongoDB
(2)将bin添加到环境路径变量中
(3)创建 c:\data\db
(4)创建 c:\data\mongod.log
(5)在命令bin
文件夹下运行
.\ mongod.exe --install --logpath c:\ data\mongod.log --logappend --bind_ip 12 7.0.0.1 --dbpath c:\ data\db
(6)启动mongo db作为服务
net start MongoDB
(7)最后mongo
在命令行中运行以检查mongo shell是否打开.