Pergunta

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

Foi útil?

Solução

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

mongod --install

Pode valer a pena leitura esta discussão primeiro Apesar. Parece haver alguns problemas com caminhos relativos / absolutos quando a chave de registro relevante é escrita.

Outras dicas

Depois de tentar por várias horas, eu finalmente fez isso.

Certifique-se de que você adicionou o diretório <MONGODB_PATH>\bin à variável de sistema PATH

Primeiro eu executado este comando:

D:\mongodb\bin>mongod --remove

Então eu executado este comando após comando de abertura rápida como administrador:

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

Depois que ali mesmo no prompt de comando execute:

services.msc

E olhar para o serviço MongoDB e clique em Iniciar.


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

Se você não fizer isso, o 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-admin, (ou seja net start MongoDB ou Start-Service MongoDB em PowerShell), você vai ter uma resposta como esta:

System error 5 has occurred.
Access is denied.

ou este:

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 OS reinicialização você precisa excluir "mongod.lock " manualmente

Ao contrário de outras respostas desta vontade ..

Inicie o serviço automaticamente no sistema reiniciar / RESTART

MongoDB Instalar

Windows

(1) Instalar MongoDB

(2) Adicionar bin ao caminho

(3) Criar c: \ data \ db

(4) Criar c: \ data \ Log

(5) Criar c: \ data \ mongod.cfg com conteúdos ..

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

(6) Para criar serviço que irá auto start na reinicialização .. executado 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) Inicie o serviço .. executado como administrador ..

net start MongoDB

IMPORTANTE: Mesmo que isso diz 'O serviço MongoDB foi iniciado com sucesso' pode falhar

Para verificação dupla abra o Painel de Controle> Serviços, verifique se o status do serviço MongoDB é 'Running'

Se não, verificar o seu arquivo de log em C: \ data \ log \ mongod.log para o motivo da falha e corrigi-lo

(não comece MongoDB via Painel de Controle> Serviços, uso .. net start MongoDB)

(8) Finalmente, reinicie sua máquina com MongoDB correndo e ainda será executado em restart

Se você quiser matá-lo ..

net stop MongoDB

sc.exe delete MongoDB

O abaixo etapas se aplicam ao Windows.

Executar abaixo em um administrativo cmd

mongod --remove

Isto irá remover o serviço MongoDB existente (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

Os serviços abertos com:

services.msc

Encontre MongoDB -> Botão direito do mouse -> Iniciar

Você pode usar o comando a seguir 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 o MongoDB com parâmetros padrão, você pode usar esses valores:

  • yourIPadress: 127.0.0.1 ou localhost
  • yourPortNumber: 27017 (porta padrão) ou put não faça --port
  • SERVICEDISPLAYNAME: somente se você executar mais de um serviço (uma vez que MongoDB 1.8)

Não há mais informações sobre este comando aqui

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

Esta PowerShell Script baixa e instala MongoDB como 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, fez o caminho https://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/#configure-a-windows-service-for-mongodb-community- edição descreve.

Use um arquivo de configuração ...

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

Esta 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 tinha que executá-lo de admin cmd

A forma mongod --install resultados recomendados 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 mongodb instalados em C:\mongodb você precisa simplesmente adicionar o logpath:

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. Em seguida, você iniciar o serviço MongoDB digitando:

net start MongoDB

Considere o uso

mongod --install --rest --master

Trabalho sobre Mongo DB: 3.6

(1) Instalar MongoDB

(2) Adicionar bin a variável caminho do ambiente

(3) Criar c:\data\db

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

(5) Run abaixo comando no bin pasta

\ mongod.exe --install --logpath c:. \ Data \ mongod.log --logappend --bind_ip 12 7.0.0.1 --dbpath c: \ data \ db

(6) Para iniciar mongo db como serviço

net start MongoDB

(7) Finalmente executar mongo na linha de comando para verificar mongo shell está aberto 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

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"

escapar da binPath estava falhando para mim como descrito na documentação do Mongo

Falha:

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. Criar pasta C:\data\db
  2. Criar C:\data\db\log.txt arquivo
  3. Open prompt de comando como "Executar como Administrador" e certifique-se o caminho mogodb bin está correto e escrita

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

    net run MongoDB
    

Trabalho sobre MongoDB 3.4 [Windows]

  • Criar dir C: / MongoDB / dados
  • 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 MongoDb como um serviço, execute este comando em PowerShell com poder admin

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

  • Open Services.msc e olhar para MongoDB, em seguida, iniciá-lo

Para a versão 2.4.3 (a versão atual como da data de postagem), crie um arquivo de configuração e, em seguida, executar a seguinte:

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

Atualmente (até a versão 2.4.4), se qualquer caminho (dbpath / logpath / config) contém espaços, em seguida, o serviço não será iniciado, e mostrar o erro: "O serviço não está respondendo à função de controle" .

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

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

Inicialmente eu tinha:

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 aspas em torno de um dbpath com espaços. O serviço irá aparecer para iniciar quando você executar net start MongoDB , mas ele vai terminar. Verifique os arquivos de log para confirmação de que o serviço tem realmente começou.

Run "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ê deve passar: dbpath, configuração e arquivo de log para mongod com a instalação da bandeira

exemplo:

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

Nota: Eu tenho caminho mongod na minha variável de caminho.

Você pode controlar o serviço com:

net start mongodb
net stop  mongodb 

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

  1. Crie um diretório de registro, 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 mongod.cfg nome na pasta "C: \ MongoDB \"

  4. Na sequência de comando irá instalar o serviço do Windows em 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. Uma vez que você executar este comando, você terá a [SC] CreateService SUCCESS

  6. Executar comando a seguir no prompt de comando

    net start MongoDB

Se você instalar MongoDB 2.6.1 ou mais recente usando o MSI download de um Command Prompt Administrador , uma definição de serviço devem ser automaticamente criado para você.

A documentação MongoDB também tem um tutorial para ajudar você a manualmente Criar definição de um serviço do Windows se necessário.

Essa resposta é para aqueles que já instalou mongo DB usando instalador MSI.

Vamos dizer que a localização do seu padrão instalado é "C: \ Program Files \ MongoDB \ Server \ 3.2 \ bin"

Passos para executar mongo como um serviço de janela

  1. comando Abra o prompt como administrador
  2. Tipo cd C:\Program Files\MongoDB\Server\3.2\bin (trajeto de verificação corretamente, como você pode ter uma versão diferente instalado, e não 3.2).
  3. Pressione Enter
  4. Tipo net start MongoDB
  5. Pressione Enter
  6. Pressione Windows + R, tipo services.msc e verifique se Mongo está sendo executado como um serviço.
mongod --config "C:\Program Files\MongoDB\Server\3.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary"
  1. janelas de serviços de verificação

    Se você tem serviço para mongo removê-lo por correr abaixo comando
    mongod --remove

  2. criar o arquivo mongo.cfg com o conteúdo abaixo

    systemlog:
    Destino: arquivo
    caminho: C: \ data \ Log \ mongod.log
    armazenamento:
    dbPath: c: \ data \ db

    caminho: onde você quer datas de log loja
    dbPath: seu diretório de banco de dados

  3. em seguida, executar abaixo de comando

    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"

    binPath: diretório de instalação do MongoDB
    config: endereço ficheiro.cfg
    DisplayName: Seu nome Serviço

  4. iniciar o serviço

    net start MongoDB

Agora, cada as coisas são feitas. apreciar esse

No meu caso, eu criar o mongod.cfg ao lado do mongd.exe com o seguinte conteúdo.

# 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:

Então eu corro tanto os dois comandos para criar o serviço.

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>

Não são correta, observe as citações escaparam são necessários.

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>

Plz tente as etapas em 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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top