Atualizei recentemente para o Ubuntu 16.04, após o qual o MongoDB 3.0.2 não está iniciando.
$ sudo service mongod start
o que geraria erro:
Failed to start mongod.service: Unit mongod.service failed to load: No such file or directory.
Eu vi esses logs de erros executandosystemctl status mongod.service
● mongod.service
Loaded: loaded (/etc/init.d/mongod; bad; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2016-04-29 10:48:02 IST; 10s ago
Docs: man:systemd-sysv-generator(8)
Process: 8624 ExecStart=/etc/init.d/mongod start (code=exited, status=1/FAILURE)
mongod[8223]: Rather than invoking init scripts through /etc/init.d, use the service(8)
mongod[8223]: utility, e.g. service mongod start
mongod[8223]: initctl: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection
mongod[8223]: Since the script you are attempting to invoke has been converted to an
mongod[8223]: Upstart job, you may also use the start(8) utility, e.g. start mongod
mongod[8223]: start: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection r
systemd[1]: mongod.service: Control process exited, code=exited status=1
systemd[1]: Failed to start mongod.service.
systemd[1]: mongod.service: Unit entered failed state.
systemd[1]: mongod.service: Failed with result 'exit-code'.
Tentei as soluções mencionadas abaixo, mas nenhuma funcionou:
- Criado um arquivo /lib/systemd/system/mongodb.service com o seguinte conteúdo:
[Unidade] Descrição=Banco de dados orientado a documentos, de alto desempenho e sem esquemas After=network.target
[Serviço] Usuário=mongodb ExecStart=/usr/bin/mongod --quiet --config /etc/mongodb.conf
[Instalar] WantedBy=multi-user.target
- Tentei instalar o upstartv
sudo apt-get install upstart-sysv
Responder1
- remova o upstart-sysv, você pode iniciar o mongo por uma unidade systemd.
- verifique seu arquivo de configuração mongod.config. Não deveria ter
processManagement.fork
:true
- verifique se o usuário do mongo dbpath e das pastas de log
mongodb
(no arquivo de serviço) com o qual você executa seu script deve ter permissão para acessar esses arquivos. - se ainda tiver problemas, verifique seu arquivo mongod.log (você o especificou no arquivo de configuração), você pode encontrar erros mais detalhados lá.
Responder2
Ok, eu fiz:
- Cópia de segurança:
# cp -vr /var/lib/mongodb /root/
# cp /etc/mongod.conf /root
- Excluiu o antigo init:
# rm -fr /etc/init.d/mongod
3 - Criado o arquivo/etc/systemd/system/multi-user.target.wants/mongod.service, como:
# nano /etc/systemd/system/multi-user.target.wants/mongod.service
4 - Copiei esse script de outro sistema que já era Xenial:
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual
[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/env bash -c "numactl --interleave=all /usr/bin/mongod --quiet --config /etc/mongod.conf"
# file size
LimitFSIZE=infinity
# cpu time
LimitCPU=infinity
# virtual memory size
LimitAS=infinity
# open files
LimitNOFILE=64000
# processes/threads
LimitNPROC=64000
# total threads (user+kernel)
TasksMax=infinity
TasksAccounting=false
# Recommended limits for for mongod as specified in
# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings
[Install]
WantedBy=multi-user.target
5 - Ainda falha se você tentar iniciá-lo (dê uma olhada no comando start, ele usanumactl, então:
# apt-get install -y numactl
6 - Serviços de recarga:
# systemctl daemon-reload
7 - Remova bloqueios antigos (reze para que seu banco de dados esteja são):
# rm -fr /var/lib/mongodb/mongod.lock
8 – Reinicie, verifique o status e seja feliz:
# systemctl restart mongod.service
# systemctl status mongod.service
● mongod.service - High-performance, schema-free document-oriented database
Loaded: loaded (/etc/systemd/system/multi-user.target.wants/mongod.service; bad; vendor preset: enabled)
Active: active (running) since Qui 2018-05-17 21:15:16 -03; 2s ago
Docs: https://docs.mongodb.org/manual
Main PID: 6301 (mongod)
CGroup: /system.slice/mongod.service
└─6301 /usr/bin/mongod --quiet --config /etc/mongod.conf
Mai 17 21:15:16 xx-server systemd[1]: Started High-performance, schema-free document-oriented database.
```
Acabei de enfrentar isso hoje, então talvez ainda existam alguns sistemas confiáveis para serem Xenial usando MongoDB neste domínio de LTS. Desculpe pela marcação, ainda estou melhorando isso. Melhor para todos vocês!