Como executar o MongoDB como serviço do Windows?

Como configurar o MongoDB para que ele possa ser executado como serviço do Windows?

Eu acho que se você executá-lo com a --install linha de comando --install , ele instala como um serviço do Windows.

 mongod --install 

Pode valer a pena ler este tópico primeiro embora. Parece haver alguns problemas com caminhos relativos / absolutos quando a chave do registro relevante é gravada.

Depois de tentar várias horas, finalmente consegui.

Certifique-se de que você adicionou o diretório / bin a sua variável de sistema PATH

Primeiro eu executei este comando:

 D:\mongodb\bin>mongod --remove 

Primeiro eu executei este comando depois de abrir o prompt de comando como administrador:

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

Depois disso, no prompt de comando, execute:

 services.msc 

E procure pelo serviço MongoDB e clique em iniciar.


NOTA: Certifique-se de executar o prompt de comando como administrador.

Se você não fizer o seu arquivo de log (‘D: \ mongodb \ log.txt’ no exemplo acima) irá 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 um console não-administrador (ex. net start MongoDB ou Start-Service MongoDB no PowerShell), você receberá 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 precisa --dbpath e --logpath

e depois de reiniciar o SO você precisa excluir “mongod.lock ” manualmente

Ao contrário de outras respostas isso vai ..

INICIAR O SERVIÇO AUTOMATICAMENTE NO SISTEMA REINICIALIZAR / REINICIAR

Instalação do MongoDB

janelas

(1) Instale o MongoDB

(2) Adicionar bin ao caminho

(3) Crie c: \ data \ db

(4) Crie c: \ data \ log

(5) Crie c: \ data \ mongod.cfg com o conteúdo ..

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

(6) Para criar serviço que será iniciado automaticamente na reboot .. EXECUTAR COMO ADMIN ..

 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) Inicie o serviço .. FUNCIONE COMO ADMIN ..

 net start MongoDB 

IMPORTANTE: Mesmo que isso diga “O serviço do MongoDB foi iniciado com êxito”, ele pode falhar

Para verificar novamente o Painel de Controle> Serviços, verifique se o status do serviço MongoDB é ‘Executando’

Se não, verifique seu arquivo de log em C: \ data \ log \ mongod.log para saber o motivo da falha e corrija-o

(Não inicie o MongoDB via Painel de Controle> Serviços, use .. net start MongoDB)

(8) Por fim, reinicie sua máquina com o MongoDB em execução e ela ainda estará em execução na reboot

Se você quiser matá-lo ..

 net stop MongoDB sc.exe delete MongoDB 

As etapas abaixo se aplicam ao Windows.

Corra abaixo em um cmd administrativo

 mongod --remove 

Isso removerá o serviço existente do MongoDB (se houver).

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

Certifique-se de que a pasta C:\data\db existe

Abra serviços com:

 services.msc 

Encontre o MongoDB -> Clique com o botão direito -> Iniciar

Você pode usar o comando abaixo para executar o mongodb como um 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 você usar mongodb com parâmetros padrão, poderá usar estes valores:

  • yourIPadress: 127.0.0.1 ou localhost
  • yourPortNumber: 27017 (porta padrão) ou não coloque –port
  • serviceDisplayName: somente se você executar mais de um serviço (desde o mongodb 1.8)

Há mais informações sobre este comando aqui

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

Este Script do PowerShell faz o download e instala o MongoDB como o serviço do 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 

Eu tentei todas as respostas e, em seguida, fiz isso da maneira como https://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/#configure-a-windows-service-for-mongodb-community-edition descreve .

Use um arquivo de configuração …

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

Essa foi a única coisa que funcionou para mim. Como tudo tinha que ser um caminho absoluto:

 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 executá-lo a partir do admin cmd

Considere usar

 mongod --install --rest --master 

A maneira 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 C:\mongodb você precisa simplesmente adicionar o caminho de log:

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

O caminho para o arquivo de log deve existir e deve ser um caminho absoluto do Windows. Então você inicia o serviço MongoDB digitando:

 net start MongoDB 
 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 

Referência

Isto é o que funcionou para mim:

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

escapando do binPath estava falhando para mim conforme descrito na documentação do 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 é:

  1. Crie a pasta C:\data\db
  2. Crie o arquivo C:\data\db\log.txt
  3. Abra o prompt de comando como “Executar como administrador” e verifique se o caminho do diretório mogodb bin está correto e escreva

     C:\Program Files\MongoDB\Server\3.4\bin> mongod.exe --install mongod --dbpath="c:\data\db" --logpath="c:\data\db\log.txt" 
  4. Inicie o serviço mongodb:

     net run MongoDB 

Trabalhando no MongoDB 3.4 [Windows]

  • Criar dir C: / mongodb / data
  • Crie um arquivo em C: /mongodb/mongodb.config usando 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 no powershell com poder admin

    mongod –config = “C: \ mongodb \ mongodb.config” –install – serviço

  • Abra o Services.msc e procure o MongoDb, inicie-o

Trabalhando no Mongo DB: 3.6

(1) Instale o MongoDB

(2) Incluir bin na variável do caminho do ambiente

(3) Crie c:\data\db

(4) Crie c:\data\mongod.log

(5) Execute o comando abaixo na pasta bin

\ mongod.exe –install –logpath c: \ data \ mongod.log –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, execute o mongo na linha de comando para verificar se o shell do mongo está aberto ou não.

Para a versão 2.4.3 (versão atual a partir da data de lançamento), crie um arquivo de configuração e execute o seguinte:

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

Atualmente (até a versão 2.4.4), se algum caminho (dbpath / logpath / config) contiver espaços, o serviço não será iniciado e mostrará o erro: “O serviço não está respondendo à function de controle”.

Estou na versão 2.4.9 e usando um arquivo de configuração. O serviço não começaria até que eu cercasse o sinal de igual no arquivo de configuração com espaços:

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

Originalmente eu tive:

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

Eu também descobri que ao instalar o serviço que você tem que usar um caminho absoluto para o arquivo de configuração, por exemplo:

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

Não fique tentado a colocar vírgulas invertidas em torno de um dbpath com espaços. O serviço parecerá iniciar quando você executar net start MongoDB, mas terminará. Verifique os arquivos de log para confirmação de que o serviço foi realmente iniciado.

Execute “cmd.exe” como administrador e execute “sc.exe” para adicionar um novo serviço do 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 o flag de instalação

exemplo:

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

note: Eu tenho o caminho mongod na minha variável path.

Você pode controlar o serviço com:

 net start mongodb net stop mongodb 

Se você instalar o MongoDB 2.6.1 ou mais recente usando o download do MSI a partir de um Prompt de Comando do Administrador , uma definição de serviço deverá ser criada automaticamente para você.

A documentação do MongoDB também possui um tutorial para ajudá-lo a criar manualmente uma definição de serviço do Windows, se necessário.

Esta resposta é para aqueles que já instalaram o mongo DB usando o instalador MSI.

Digamos que seu local de instalação padrão seja “C: \ Arquivos de Programas \ MongoDB \ Server \ 3.2 \ bin”

Passos para executar o mongo como um serviço de janela

  1. Abra o prompt de comando como administrador
  2. Digite cd C:\Program Files\MongoDB\Server\3.2\bin (verifique o caminho corretamente, pois você pode ter uma versão diferente instalada, e não 3.2).
  3. Pressione Enter
  4. Digite net start MongoDB
  5. Pressione Enter
  6. Pressione Windows + R, digite services.msc e verifique se o Mongo está sendo executado como um serviço.

Estas são as etapas para instalar o MongoDB como Serviço do Windows:

  1. Crie um diretório de log, por exemplo, C:\MongoDB\log

  2. Crie um diretório db, por exemplo, C:\MongoDB\db

  3. Prepare um arquivo de configuração com as seguintes linhas

    dbpath=C:\MongoDB\db

    logpath=C:\MongoDB\log

    Coloque o arquivo de configuração com o nome mongod.cfg na pasta “C: \ MongoDB \”

  4. O comando a seguir instalará o Serviço do 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"

  5. Depois de executar este comando, você obterá o [SC] CreateService SUCCESS

  6. Execute o seguinte comando no prompt de comando

    net start MongoDB

 mongod --config "C:\Program Files\MongoDB\Server\3.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary" 

Etapa 1: Abra um prompt de comando do administrador. Pressione a tecla Win, digite cmd.exe e pressione Ctrl + Shift + Enter para executar o prompt de comando como administrador.

Execute as etapas restantes no prompt de comando do administrador.

Etapa 2: crie diretórios. Crie diretórios para seu database e arquivos de log:

 mkdir c:\data\db mkdir c:\data\log 

Etapa 3: crie um arquivo de configuração. Crie um arquivo de configuração. O arquivo deve definir systemLog.path. Inclua opções de configuração adicionais, conforme apropriado.

Por exemplo, crie um arquivo em C: \ Arquivos de Programas \ MongoDB \ Server \ 3.6 \ mongod.cfg que especifica systemLog.path e storage.dbPath:

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

Etapa 4: instale o serviço MongoDB. Importante: Execute todos os comandos a seguir no Prompt de Comando com “Privilégios Administrativos”.

Instale o serviço MongoDB iniciando mongod.exe com a opção –install e a opção -config para especificar o arquivo de configuração criado anteriormente.

 "C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe" --config "C:\Program Files\MongoDB\Server\3.4\mongod.cfg" --install 

Para usar um dbpath alternativo, especifique o caminho no arquivo de configuração (por exemplo, C: \ mongodb \ mongod.cfg) ou na linha de comando com a opção –dbpath.

Se necessário, você pode instalar serviços para várias instâncias de mongod.exe ou mongos.exe. Instale cada serviço com um exclusivo –serviceName e –serviceDisplayName. Use várias instâncias apenas quando houver resources suficientes do sistema e o design do sistema exigir isso.

Etapa 5: inicie o serviço MongoDB.

 net start MongoDB 

Etapa 6: Pare ou remova o serviço MongoDB conforme necessário. Para parar o serviço MongoDB, use o seguinte comando:

 net stop MongoDB 

Plz tente as etapas no Mongo DB: 3.6 e 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