MongoDB 2.6 no se inicia en Ubuntu 15.04


51

Me instalé MongoDB 2.6 en Ubuntu limpia instalada 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

Terminó sin ningún problema. Sin embargo, cuando intenté iniciarlo, recibí el siguiente error:

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

¿Cómo puedo arreglar esto?

Respuestas:


65

Lo instalé desde el repositorio de Debian Wheeze y funciona bien.

Primero asegúrese de eliminar el paquete mongodb-org y todas sus dependencias:

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

Elimine el antiguo mongodb.list que creó:

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

Utilice el repositorio de Debian en su lugar:

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

Actualice e instale nuevamente:

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

Después de eso, puede iniciar con éxito el servidor:

sudo service mongod start

o

systemctl start mongod

(según lo aclarado por Ernie Hershey en respuesta al comentario de Roman Gaufman aquí: https://jira.mongodb.org/browse/SERVER-17742 )


1
Intenté eso y obtuve un servicio que no se encontró al intentar iniciar mongod
Moshe Revah

2
¿Estás seguro de que eliminaste automáticamente las dependencias? También lo entendí, pero luego me di cuenta de que no había eliminado todos los paquetes relacionados con mongodb. Después de eliminarlos todos e instalarlos desde el repositorio de wheezy, funciona bien con systemd.
Dielson Sales

1
me salvó mucho dolor de cabeza
Srivathsa Harish Venkataramana

1
Gracias. La purga seguida de autoremove (casi lo olvido) hizo el truco.
Nenad Vukicevic

En mi caso el 14.04 pero probablemente en el 15.04 /var/log/syslog, verificando el intento fallido y luego la edición /etc/init/mongodb.conftambién puede ayudar si está utilizando un directorio de datos no estándar, directorio de registro o instancia de usuario.
Comer en Joes

25

El equipo de MongoDB dice que no admitirán Ubuntu 15.04 y planean admitir 16.04 en su lugar (consulte https://jira.mongodb.org/browse/SERVER-17742 ).

Ubuntu 15.04 avanza el sistema de inicio predeterminado de Upstart a systemd. No tuve éxito al iniciar MongoDB 3.0 con systemd.

Puede volver a Upstart instalando upstart-sysv:

sudo apt-get install upstart-sysv

Luego reinicie y MongoDB debería estar activo.

Espero encontrar una manera fácil de ejecutar MongoDB en Ubuntu 15.04 sin cambiar las cosas en el tiempo.


2
Esta es la mejor manera de resolver este problema por ahora. Si alguien conoce otras formas, comparta aquí.
Fernando Kosh

En mi caso, instalar upstart-sysv y reiniciar simplemente se bloquea.
Didac Montero

@DidacMontero Mira wiki.ubuntu.com/SystemdForUpstartUsers para otras opciones
Moshe Revah

Funciona para mí en Ubuntu 15.04, ¡gracias por la solución!
Lil 'Bits

Esto funcionó perfectamente para mí.
slimflem

4

Está instalando desde los paquetes publicados directamente desde mongodb.org. Debería instalar desde los paquetes suministrados en el repositorio de Ubuntu. Los paquetes Debian / Ubuntu han sido parcheados con unidades de servicio systemd, para llenar el vacío dejado por mongodb.org.

(No hay escasez de mongodb.servicearchivos de unidad en la WWW. Tampoco es difícil escribir uno. Yo sí).

Específicamente: encontrará dicha unidad de servicio en el paquete mongodb-server versión 2.6 para Ubuntu versión 15 . Así que solo instala ese paquete.

(Tenga en cuenta que las unidades de servicio suministradas por Debian / Ubuntu no aplican las directivas de unidades de servicio systemd recomendadas por mongo ).

Otras lecturas


Sin embargo, este enfoque no resuelve el problema para aquellos que quieren MongoDB> = 3.0
Dielson Sales

Si lo hace Claramente no leíste ni el segundo párrafo ni la lectura adicional.
JdeBP

4

Creé un script de Systemd que parece funcionar para Ubuntu 15.04+ y 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

Asegúrese de configurar su directorio de datos en /etc/mongod.conf


1
Esta es la mejor solución.
J. Bruni

el enlace ya no funciona
Hotbelgo

Corregido el enlace.
benileo

Por supuesto, debe marcarse como la mejor solución.
Wédney Yuri

1

¿No es esta la mejor respuesta? De una pregunta duplicada: https://askubuntu.com/a/694226/255468 por @sclausen


Es solo la falta de un archivo de servicio para systemd. No es necesario volver al inicio como lo hizo Kartik o usar un repositorio diferente al descrito en https://docs.mongodb.org/manual/installation/ .

Cree un archivo /lib/systemd/system/mongodb.service con el siguiente contenido:

[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" en lugar de "mongod"

es decir

sudo service mongodb start

sudo service mongodb stop

0

Muchas de estas respuestas están relacionadas con Mongo 3.0, mientras que la pregunta se hizo específicamente sobre 2.6.

He tenido éxito instalando 2.6 usando el repositorio de Debian de 10gen. Esto parece funcionar perfectamente con 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

Fuente: Cómo instalar MongoDB 2.6 en Ubuntu 14.10, 14.04 y 12.04 LTS


0

Si bien la pregunta es para la versión 2.6. Recibía exactamente el mismo error Unit mongod.service failed to loaden mi Ubuntu 15.04 para la versión 3.0.6. Finalmente se resolvió utilizando el mismo repositorio de wheezy mencionado anteriormente por Dielson Sales.

Y después de la instalación (siguiendo los pasos detallados por @Dielson Sales) se enfrentó al error anterior. Así es como finalmente lo resolví.

A) Cambie los archivos de almacenamiento de datos predeterminados de MongoDB de / var / lib / mongodb a / data / db

  • Primero cree el nuevo directorio / data / db sudo mkdir -p /data/db

  • Abra el archivo mongod.conf sudo gedit /etc/mongod.confy cambie la línea "dbpath" como se muestra a continuación

  • Reemplace dbpath = / var / lib / mongodb TO dbpath = / data / db y guarde el archivo.

  • Luego elimine el antiguo valor predeterminado / var / lib / mongodb

  • Ahora debemos hacer todos los directorios / archivos propiedad del usuario mongod

B) Entonces corre sudo chown -R mongodb:mongodb /data/db

Y ahora finalmente puedo comenzar a Mongo con sudo service mongod start

Y chcek con el que se ejecuta el servicio sudo systemctl status mongod : debería mostrar un mensaje similar al siguiente

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

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

He detallado mis pasos en mi blog


0

Primero, descargue mongodb:

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

descargar extracto:

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

ejecute el mongod (mongodb-linux-x86_64-3.0.6.tgz / bin / mongod) con el atributo -dbpath:

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

Puede ser un directorio vacío cualquiera que elija

y finalmente, ejecuta mongo (mongodb-linux-x86_64-3.0.6.tgz / bin / mongo)

./mongo

trabajó en mi ubuntu 15 :)

lo siento por mi mal inglés, vivo en Brasil


0

Después de horas de búsqueda, la solución fue actualizar mi ubuntu de 15.04 a 16.04 usando este comando:

Paso 1

sudo do-release-upgrade -d 

Tomará unos minutos, así que no se asuste, ya que debe eliminar mongodb:

Paso 2

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

Y ahora, instala mongodb pero usando esta fuente:

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

Paso 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

Y eso es.

Nota: Si obtiene un error como 'E: el tipo' deb 'en la primera línea. . . en el archivo mongodb-org-3.0.list

todo lo que tiene que hacer es ingresar a este archivo usando gedit y eliminar el 'al comienzo y al final de la oración.


Esta parte "La solución era actualizar mi ubuntu de 15.04 a 16.04 ..." no tiene sentido en este momento, porque 16.04 aún no se ha lanzado.
clearkimura

1
@clearkimura Sí lo es. Bueno, en alfa. Y lo que sea, la segunda versión diaria de Ubuntu 16.04 está instalada en mi computadora, y no he visto ningún problema.
Star OS

0

Ubuntu 15.04+ usa systemd en lugar de upstart . Comience con la guía de instalación oficial de MongoDB . Luego use su oficial 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

Descargar, parchar, instalar servicio y configurar dir + permisos

$ 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

Comienza el servicio

$ sudo systemctl start mongod

Verificar estado del servicio

$ sudo systemctl status mongod

0

Hiciste un error tipográfico en tu comando.

Intenta usar esto en su lugar: sudo service mongodb start

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.