O MongoDB 2.6 não inicia no Ubuntu 15.04


51

Eu instalado MongoDB 2.6 on limpa instalada Ubuntu 15.04:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
sudo apt-get update
sudo apt-get install -y mongodb-org

Terminou sem problemas. No entanto, quando tentei iniciá-lo, recebi o seguinte erro:

$ sudo service mongod start
Failed to start mongod.service: Unit mongod.service failed to load: No such file or directory.

Como posso consertar isso?

Respostas:


65

Eu instalei a partir do repositório debian wheeze e funciona bem.

Primeiro, certifique-se de remover o pacote mongodb-org e todas as suas dependências:

sudo apt-get purge mongodb-org
sudo apt-get autoremove

Remova o mongodb.list antigo que você criou:

sudo rm /etc/apt/sources.list.d/mongodb.list

Use o repositório Debian:

echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

Atualize e instale novamente:

sudo apt-get update
sudo apt-get install -y mongodb-org

Depois disso, você pode iniciar com êxito o servidor:

sudo service mongod start

ou

systemctl start mongod

(conforme esclarecido por Ernie Hershey em resposta ao comentário de Roman Gaufman aqui: https://jira.mongodb.org/browse/SERVER-17742 )


11
Eu tentei isso e serviço got não encontrado ao tentar iniciar mongod
Moshe Revah

2
Tem certeza de que removeu automaticamente as dependências? Entendi também, mas percebi que não havia removido todos os pacotes relacionados ao mongodb. Depois de remover todos eles e instalados do repositório wheezy, está funcionando bem com o systemd.
Dielson Sales

11
salva-me um monte de dor de cabeça
Srivathsa Harish Venkataramana

11
Obrigado. A limpeza seguida de remoção automática (quase a esqueci) fez o truque.
Nenad Vukicevic

No meu caso, no 14.04, mas provavelmente no 15.04 /var/log/syslog, a verificação da tentativa com falha e a edição /etc/init/mongodb.conftambém podem ajudar se você estiver usando um diretório de dados, diretório de log ou instância do usuário não padrão.
Coma em Joes

25

A equipe do MongoDB diz que não oferece suporte ao Ubuntu 15.04 e planeja oferecer suporte ao 16.04 (consulte https://jira.mongodb.org/browse/SERVER-17742 ).

O Ubuntu 15.04 avança o sistema init padrão do Upstart para o systemd. Não tive sucesso ao iniciar o MongoDB 3.0 com o systemd.

Você pode voltar para o Upstart instalando upstart-sysv:

sudo apt-get install upstart-sysv

Em seguida, reinicie e o MongoDB deve estar ativo.

Espero encontrar uma maneira fácil de executar o MongoDB no Ubuntu 15.04 sem mudar as coisas no tempo.


2
Essa é a melhor maneira de resolver esse problema agora. Se alguém conhece outras maneiras, compartilhe aqui.
Fernando Kosh

No meu caso, instalar o upstart-sysv e reiniciar apenas trava.
Didac Montero

@DidacMontero Olhe wiki.ubuntu.com/SystemdForUpstartUsers para outras opções
Moshe Revah

Funciona para mim no Ubuntu 15.04, obrigado pela solução alternativa!
Lil 'Bits

isso funcionou perfeitamente para mim.
slimflem

4

Você está instalando a partir dos pacotes publicados diretamente no mongodb.org. Você deve instalar a partir dos pacotes fornecidos no repositório Ubuntu. Os pacotes Debian / Ubuntu foram corrigidos com as unidades de serviço systemd, para preencher o buraco deixado pelo mongodb.org.

(Não há falta de mongodb.servicearquivos de unidade na WWW. Também não é difícil escrever um. Eu tenho.)

Especificamente: você encontrará essa unidade de serviço no pacote mongodb-server versão 2.6 para Ubuntu versão 15 . Então, basta instalar esse pacote.

(Observe que as unidades de serviço fornecidas pela Debian / Ubuntu não aplicam as diretivas de unidade de serviço systemd recomendadas pela mongo .)

Leitura adicional


No entanto, esta abordagem não resolve o problema para aqueles que querem MongoDB> = 3,0
Dielson Vendas

Sim. Você claramente não leu nem o segundo parágrafo nem a leitura adicional.
JdeBP

4

Criei um script Systemd que parece funcionar no Ubuntu 15.04+ e Mongo 3.0+:

[Unit]
Description=High-performance, schema-free document-oriented database
Documentation=man:mongod(1)
After=network.target

[Service]
Type=forking
User=mongodb
Group=mongodb
RuntimeDirectory=mongod
PIDFile=/var/run/mongod/mongod.pid
ExecStart=/usr/bin/mongod -f /etc/mongod.conf --pidfilepath /var/run/mongod/mongod.pid --fork
TimeoutStopSec=5
KillMode=mixed

[Install]
WantedBy=multi-user.target

https://gist.github.com/benileo/ada486d73f58dd93a0ee

Certifique-se de definir seu diretório de dados em /etc/mongod.conf


11
essa é a melhor solução.
194 J. Bruni

o link não funciona mais #
Hotbelgo 17/01

Corrigido o link.
benileo

Com certeza, deve ser marcado como a melhor solução.
Wédney Yuri

1

Essa não é a melhor resposta? De uma pergunta duplicada: https://askubuntu.com/a/694226/255468 by @sclausen


É apenas a falta de um arquivo de serviço para o systemd. Não é necessário voltar ao início, como o Kartik, ou usar um repositório diferente do descrito em https://docs.mongodb.org/manual/installation/ .

Crie um arquivo /lib/systemd/system/mongodb.service com o seguinte conteúdo:

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target

[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongodb.conf

[Install]
WantedBy=multi-user.target


1

use "mongodb" em vez de "mongod"

ie

sudo service mongodb start

sudo service mongodb stop

0

Muitas dessas respostas estão relacionadas ao Mongo 3.0, enquanto a pergunta foi feita especificamente sobre o 2.6.

Eu tive sucesso ao instalar o 2.6 usando o repositório Debian da 10gen. Isso parece funcionar perfeitamente com o Ubuntu 15.04.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
sudo apt-get update
sudo apt-get install mongodb-org

Fonte: Como instalar o MongoDB 2.6 no Ubuntu 14.10, 14.04 e 12.04 LTS


0

Enquanto a pergunta é para a versão 2.6. Eu estava recebendo exatamente o mesmo erro Unit mongod.service failed to loadno meu Ubuntu 15.04 para versão 3.0.6. Finalmente resolvido usando o mesmo repositório chiado mencionado por Dielson Sales acima.

E após a instalação (seguindo as etapas detalhadas por @Dielson Sales), ocorreu o erro acima. Aqui está como eu finalmente resolvi.

A) Altere os arquivos padrão de armazenamento de dados do MongoDB de / var / lib / mongodb para / data / db

  • Primeiro, crie o novo diretório / data / db sudo mkdir -p /data/db

  • Abra o arquivo mongod.conf sudo gedit /etc/mongod.confe altere a linha "dbpath" como abaixo

  • Substitua dbpath = / var / lib / mongodb TO dbpath = / data / db e salve o arquivo.

  • Em seguida, exclua o antigo / var / lib / mongodb padrão

  • Agora devemos criar todos os diretórios / arquivos pertencentes ao mongod user

B) Então corra sudo chown -R mongodb:mongodb /data/db

E agora, finalmente, posso começar o mongo com sudo service mongod start

E chcek com o qual o serviço está sendo executado sudo systemctl status mongod - ele deve mostrar uma mensagem semelhante à abaixo

Loaded: loaded (/etc/init.d/mongod)

Active: active (running) since Thu 2015-09-03 04:57:49 IST; 7s ago

Detalhei minhas etapas na postagem do meu blog


0

Primeiro, faça o download do mongodb:

curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz

extrair o download:

tar -zxvf mongodb-linux-x86_64-3.0.6.tgz

execute o mongod (mongodb-linux-x86_64-3.0.6.tgz / bin / mongod) com o atributo -dbpath:

sudo ./mongod --dbpath /path/of/the/directory

Pode ser um diretório vazio à sua escolha

e, finalmente, execute o mongo (mongodb-linux-x86_64-3.0.6.tgz / bin / mongo)

./mongo

trabalhou no meu ubuntu 15 :)

desculpe pelo meu inglês ruim, eu moro no brasil


0

Após horas de pesquisa, a solução foi atualizar meu ubuntu de 15.04 para 16.04 usando este comando:

Passo 1

sudo do-release-upgrade -d 

Vai demorar alguns minutos, então não entre em pânico, do que você precisa remover o mongodb:

Passo 2

sudo apt-get purge mongodb-org 
sudo apt-get autoremove`  
rm /etc/apt/sources.list.d/mongodb-org-3.0.list`  

E agora, instale o mongodb, mas usando esta fonte:

echo 'deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main' | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

etapa 3

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10  
echo ‘deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main’ | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
sudo apt-get update
sudo apt-get install mongodb-org
sudo service mongod status

E é isso.

Nota: Se você receber um erro como 'E: o tipo' deb 'na primeira linha. . . no arquivo mongodb-org-3.0.list

tudo o que você precisa fazer é entrar nesse arquivo usando o gedit e excluir o 'no início e no final da frase.


Esta parte "A solução foi atualizar meu ubuntu de 15.04 para 16.04 ..." não faz sentido no momento, porque o 16.04 ainda não foi lançado.
clearkimura

11
@clearkimura Sim, é. Bem, em alfa. E, seja como for, a segunda compilação diária do Ubuntu 16.04 está instalada no meu computador e não vejo problemas.
Star OS

0

O Ubuntu 15.04+ usa systemd em vez de inicial . Comece com o guia de instalação oficial do MongoDB . Então use o funcionário deles mongod.service:

[Unit]
Description=High-performance, schema-free document-oriented database

[Service]
User=mongod
Group=mongod
Environment="OPTIONS=--quiet -f /etc/mongod.conf"
ExecStart=/usr/local/bin/mongod $OPTIONS run
PIDFile=/var/run/mongodb/mongod.pid

[Install]
WantedBy=multi-user.target

Baixe, corrija, instale serviço e configure dir + permissões

$ curl -OL https://raw.githubusercontent.com/mongodb/mongo/1663f45b4e33e058a0203a81f50574a870882c34/rpm/mongod.service
$ sed -i 's/\/usr\/local/\/usr/g' mongod.service
$ sed -i '/Desc/a After=network.target' mongod.service
$ sudo sed -i '0,/\/var\/lib\/mongodb/s//\/data\/db/' /etc/mongod.conf
$ sudo cp mongod.service /lib/systemd/system/mongo.service
$ sudo mkdir -p /data/db
$ sudo chown -R mongodb:mongodb /data
$ sudo systemctl daemon-reload
$ sudo systemctl enable mongod

Começar serviço

$ sudo systemctl start mongod

Verifique o status do serviço

$ sudo systemctl status mongod

0

Você digitou um erro de digitação.

Tente usar isso: sudo service mongodb start

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.