Como executar MongoDB como serviço de Windows?
27 answers
Acho que se o executares com o botão da linha de comandos --install
, ele instala-o como um serviço Windows.
mongod --install
Mas talvez valha a pena ler este tópico primeiro. Parece haver alguns problemas com caminhos relativos/absolutos quando a chave de registro relevante é escrita.
Certifique-se que adicionou a pasta <MONGODB_PATH>\bin
à variável do sistemaPATH
Primeiro executei este comando:
D:\mongodb\bin>mongod --remove
Então executei este comando depois de abrir a linha de comandos como administrador:
D:\mongodb\bin>mongod --dbpath=D:\mongodb --logpath=D:\mongodb\log.txt --install
Depois disso, na linha de comandos, execute:
services.msc
Procure o serviço MongoDB e clique em Iniciar.
Nota: certifique-se de executar a linha de comandos como administrador.
Se não fizer isto, o seu ficheiro de Registo ('D:\mongodb\log.o txt ' no exemplo acima) conterá linhas como estas:
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)
E se você tentar iniciar o serviço a partir de uma consola não-admin, (ou seja net start MongoDB
ou Start-Service MongoDB
em PowerShell), você terá uma resposta como esta:
System error 5 has occurred.
Access is denied.
Ou isto:
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
Não só --install
,
Também necessita --dbpath
e --logpath
E depois de reiniciar o sistema operacional, tem de apagar {[[9]}"mongod.bloquear " manualmente
INICIAR O SERVIÇO AUTOMATICAMENTE NO REINÍCIO / REINÍCIO DO SISTEMA
MongoDB Install
Janelas
(1) Instalar O MongoDB
(2) adicionar o bin ao path
(3) Criar c:\data\db
(4) Criar c:\data\log
(5) Criar c:\data\mongod.cfg com conteúdo ..
systemLog:
destination: file
path: c:\data\log\mongod.log
storage:
dbPath: c:\data\db
(6 )para criar um serviço que irá iniciar automaticamente no reboot .. CORRE COMO ADMINISTRADOR ..
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) Comece o serviço.. CORRE COMO ADMINISTRADOR..
net start MongoDB
Importante: mesmo que isto diga 'o serviço MongoDB foi iniciado com sucesso' ele pode falhar {[[6]}
Para verificar novamente o painel de controlo aberto > Serviços, certifique-se de que o estado do serviço MongoDB está a "correr"
Caso contrário, verifique o seu ficheiro de registo em C:\data\log\mongod.registar a razão da falha e corrigi-la
(não iniciar o MongoDB através do Painel de controlo > Serviços, usar .. net start MongoDB)
(8) finalmente, reinicie a sua máquina com O MongoDB está em execução e continuará em execução no reinício
Se quiseres matá-lo ..net stop MongoDB
sc.exe delete MongoDB
Os passos abaixo aplicam-se às janelas.
Encontra - se abaixo num cmd
mongod --remove
Isto irá remover o serviço MongoDB existente (se existir).
mongod --dbpath "C:\data\db" --logpath "C:\Program Files\MongoDB\Server\3.4\bin\mongod.log" --install --serviceName "MongoDB"
Certifique-se que a pasta C:\data\db
existe
Serviços abertos com:
services.msc
Procurar MongoDB - > botão direito - > Iniciar
Pode usar o comando abaixo para executar o mongodb como serviço do 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
Se usar o mongodb com parâmetros predefinidos, pode usar estes valores:
- yourIPadress: 127. 0. 0. 1 ou localhost
- o seu número de registo: 27017 (Porto predefinido) ou não colocar --port
- serviceDisplayName: só se executar mais do que um serviço (desde mongodb 1, 8)
Este Script PowerShell transfere e instala o MongoDB como serviço 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
Use um ficheiro de configuração...
"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
Eu também tive que correr de admin cmd
Considere utilizar
mongod --install --rest --master
A forma recomendada mongod --install
resulta em erro:
2015-12-03T18:18:28.896+0100 I CONTROL --install has to be used with a log file for server output
Depois de ter instalado o mongodb em {[4] } , tem de simplesmente adicionar o logpath:
mongod --install --logpath C:\mongodb\logs\mongo.log
O caminho para o logfile deve existir e deve ser um caminho absoluto do Windows. Então você começa o serviço MongoDB escrevendo:
net start MongoDB
Trabalhar em Mongo DB: 3.6
(1) Instalar O MongoDB
(2) Adicionar bin à variável de localização do ambiente
(3) Criar c:\data\db
(4) Criar c:\data\mongod.log
(5) Executar abaixo do comando na bin
pasta
.\mongod.exe --install --logpath c:\data\mongod.registo --logappend -- bind_ip 12 7. 0. 0. 1 --dbpath c:\data\db
(6) para iniciar o mongo db como serviço
Net start MongoDB
(7) finalmente executar mongo
em a linha de comandos para verificar se a linha de comandos do mongo está aberta ou não.
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"
Escapar do binPath estava a falhar para mim como descrito na documentação de Mongo
Falhou:
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"
A maneira mais simples é,
- criar a pasta
C:\data\db
- criar um ficheiro
C:\data\db\log.txt
-
Abrir a linha de comandos como "executar como Administrador" e certificar-se de que a localização da pasta do mogodb bin está correcta e escrever
C:\Program Files\MongoDB\Server\3.4\bin> mongod.exe --install mongod --dbpath="c:\data\db" --logpath="c:\data\db\log.txt"
-
Iniciar o serviço mongodb:
net run MongoDB
A trabalhar no MongoDB 3.4 [Janelas]
- Criar pasta C:/mongodb/data
-
Criar um ficheiro em C:/mongodb/mongodb.configuração com esta configuração:
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
-
Para instalar o MongoDb como um serviço, execute este comando em powershell com poder de administração
Mongod -- config="C:\mongodb\mongodb.configuração " --install --service
Serviços Abertos.msc e procurar MongoDb, em seguida, iniciá - lo
Para a versão 2. 4. 3 (versão actual a partir da data de publicação), crie um ficheiro de configuração e execute depois o seguinte:
C:\MongoDB\bin\mongod.exe --config C:\MongoDB\mongod.cfg --service
Actualmente (até à Versão 2.4.4), se algum caminho (dbpath/logpath/config) contiver espaços, então o serviço não irá iniciar, e mostrar o erro: "o serviço não está a responder à função de controlo".
Estou na versão 2.4.9 e a usar um ficheiro de configuração. O serviço não começaria até que eu rodeasse o sinal de igual no ficheiro de configuração com espaços:
dbpath = D:\Mongo data
logpath = C:\mongodb\logs\mongo.log
logappend = true
Originalmente eu tinha:
logpath=C:\mongodb\logs\mongo.log
Também descobri que, ao instalar o serviço, tem de usar um caminho absoluto para o ficheiro de configuração, por exemplo:
c:\mongodb\bin\>mongodb.exe C:\mongodb\bin\mongod.conf --install
Não se sinta tentado a colocar vírgulas invertidas em torno de um dbpath com espaços. O serviço terá início quando executar o MongoDB mas terminará. Verifique os ficheiros de registo para confirmação de que o serviço realmente começou.
Executar " cmd.exe " como administrador e, em seguida, executar "sc.exe " para adicionar um novo serviço Windows.
Por exemplo:
sc.exe create MongoDB binPath= "c:\program files\mongodb\server\3.2\bin\mongod.exe"
Eu achei que você deveria passar: dbpath, config e logfile para mongod com a bandeira de instalação
Exemplo:
mongod --dbpath=c:\data\db --config=c:\data\db\config.cfg --logpath=c:\data\db\log.txt --install
Nota: tenho um caminho mongod na minha variável path .
Podes controlar o serviço com:
net start mongodb
net stop mongodb
Se instalar o MongoDB 2. 6. 1 ou mais recente usando o MSI download a partir de um comando de administrador , deverá ser criada automaticamente uma definição de Serviço para si.
A documentação do MongoDB também tem um tutorial para o ajudar a criar manualmente uma definição do Windows Service , Se necessário.
Esta resposta é para aqueles que já instalaram mongo DB usando o instalador MSI.
[[4]} digamos que a sua localização predefinida é "C:\Program ficheiros\MongoDB\Server\3.2\bin"Passos para executar mongo como um serviço de janela
- abrir a linha de comandos como administrador
- Tipo
cd C:\Program Files\MongoDB\Server\3.2\bin
(verificar a localização correctamente, dado que poderá ter uma versão diferente instalada, e não o 3.2). - pressione enter
- Tipo
net start MongoDB
- pressione enter
- Pressione Windows + R, type
services.msc
e verifique se o Mongo está a correr como serviço.
Estes são os passos para instalar o MongoDB como serviço Windows:
Criar um diretório de log, e.g.
C:\MongoDB\log
Criar um diretório db, e.g.
C:\MongoDB\db
-
Prepare um ficheiro de configuração com as seguintes linhas
dbpath=C:\MongoDB\db
logpath=C:\MongoDB\log
coloque o ficheiro de configuração com o nome mongod.cfg na pasta "C:\MongoDB\"
A seguir o comando irá instalar o serviço Windows no seu
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"
Uma vez que você executar este comando, você terá o
[SC] CreateService SUCCESS
-
Executar o seguinte comando na linha de comandos
net start MongoDB
mongod --config "C:\Program Files\MongoDB\Server\3.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary"
Passo 1: Abra uma linha de comandos do administrador. Pressione a tecla Win, digite cmd.exe, e carregue em Ctrl + Shift + Enter para executar a linha de comandos como administrador.
Execute os passos restantes da linha de comandos do administrador.
Passo 2: criar pastas. Criar pastas para a sua base de dados e ficheiros de Registo:
mkdir c:\data\db
mkdir c:\data\log
Passo 3: crie um ficheiro de configuração. Criar um ficheiro de configuração. O ficheiro deve definir o systemLog.caminho. Incluir opções de configuração adicionais, conforme apropriado.
Por exemplo, crie um ficheiro em C:\Program ficheiros\MongoDB\Server\3.6\mongod.cfg que especifica ambos systemLog.caminho e armazenamento.dbPath:
systemLog:
destination: file
path: c:\data\log\mongod.log
storage:
dbPath: c:\data\db
Passo 4: Instale o serviço MongoDB. Importante: execute todos os seguintes comandos na linha de comandos com "privilégios administrativos".
Instale o serviço MongoDB iniciando mongod.exe com a opção --install e a opção-config para indicar a opção criada anteriormente configuracao.
"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe" --config "C:\Program Files\MongoDB\Server\3.4\mongod.cfg" --install
Para usar um dbath alternativo, especifique a localização no ficheiro de configuração (e.g. C:\mongodb\mongod.cfg) ou na linha de comandos com a opção --dbpath.
Se necessário, pode instalar serviços para várias instâncias de mongod.exe ou mongos.exe. Instale cada serviço com um único --serviceName e --serviceDisplayName. Use várias instâncias apenas quando existem recursos suficientes do sistema e o seu design do sistema o requer.
Passo 5: Início o serviço MongoDB.
net start MongoDB
Passo 6: parar ou remover o serviço MongoDB conforme necessário. Para parar o serviço MongoDB use o seguinte comando:
net stop MongoDB
Plz tente os passos em Mongo DB: 3.6 & Windows 10
mongod --remove
mongod --dbpath=C:/data/db --port 27017 --logpath C:/data/log/log.txt --service
mongod --dbpath=C:/data/db --port 27017 --logpath C:/data/log/log.txt --install
net start MongoDB