MongoDB 3.0.2 no se inicia después de actualizar a Ubuntu 16.04

MongoDB 3.0.2 no se inicia después de actualizar a Ubuntu 16.04

Recientemente actualicé a Ubuntu 16.04, después de lo cual MongoDB 3.0.2 no se inicia.

$ sudo service mongod start

lo que arrojaría un error:

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

Vi estos registros de errores al ejecutarsystemctl 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'.

Probé las soluciones mencionadas a continuación, pero ninguna funcionó:

  1. Creó un archivo /lib/systemd/system/mongodb.service con el siguiente contenido:

[Unidad] Descripción=Base de datos orientada a documentos, de alto rendimiento y sin esquemas After=network.target

[Servicio] Usuario=mongodb ExecStart=/usr/bin/mongod --quiet --config /etc/mongodb.conf

[Instalar] WantedBy=multi-user.target

  1. Intenté instalar upstartv sudo apt-get install upstart-sysv

Respuesta1

  • elimine upstart-sysv, puede iniciar mongo mediante una unidad systemd.
  • verifique su archivo de configuración mongod.config. no debería haberprocessManagement.fork:true
  • verifique su dbpath de mongo y mongodbel usuario de las carpetas de registro (en el archivo de servicio) con el que ejecuta su script debe tener permiso para acceder a estos archivos.
  • Si aún tiene problemas, verifique su archivo mongod.log (lo especificó en el archivo de configuración). Puede encontrar errores más detallados allí.

Respuesta2

OK lo hice:

    • Respaldo:

    # cp -vr /var/lib/mongodb /raíz/

    # cp /etc/mongod.conf /root

    • Se eliminó el antiguo inicio:

    # rm -fr /etc/init.d/mongod

3 - Creó el archivo/etc/systemd/system/multi-user.target.wants/mongod.service, como:

# nano /etc/systemd/system/multi-user.target.wants/mongod.service

4 - Copié este script de otro sistema que ya 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 - Aún falla si intentas iniciarlo (mira el comando de inicio, usanumactl, entonces:

# apt-get install -y numactl

6 - Servicios de recarga:

# systemctl daemon-reload

7 - Elimina los bloqueos antiguos (reza para que tu base de datos esté sana):

# rm -fr /var/lib/mongodb/mongod.lock

8 - Reinicia, comprueba el estado y sé 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.

```

Me acabo de enfrentar a esto hoy, así que tal vez todavía haya algunos sistemas Trusty que sean Xenial usando MongoDB en este ámbito de LTS. Perdón por el marcado, todavía estoy mejorando esto. ¡Lo mejor para todos ustedes!

información relacionada