MongoDB 2.6 non si avvia su Ubuntu 15.04


51

Ho installato MongoDB 2.6 su Ubuntu 15.04 installato pulito:

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

È finito senza problemi. Tuttavia, quando ho provato ad avviarlo, ho ricevuto il seguente errore:

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

Come posso risolvere questo problema?

Risposte:


65

Ho installato dal repository debian wheeze e funziona benissimo.

Innanzitutto assicurati di rimuovere il pacchetto mongodb-org e tutte le sue dipendenze:

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

Rimuovi il vecchio mongodb.list che hai creato:

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

Utilizzare invece il repository 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

Aggiorna e installa di nuovo:

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

Successivamente, è possibile avviare correttamente il server:

sudo service mongod start

o

systemctl start mongod

(come chiarito da Ernie Hershey in risposta al commento di Roman Gaufman qui: https://jira.mongodb.org/browse/SERVER-17742 )


1
Ho provato a farlo e non ho trovato il servizio quando ho cercato di avviare mongod
Moshe Revah

2
Sei sicuro di aver rimosso le dipendenze? L'ho preso anch'io, ma poi ho capito che non avevo rimosso tutti i pacchetti relativi a mongodb. Dopo averli rimossi tutti e installati dal repository wheezy, funziona bene con systemd.
Dielson Sales,

1
mi ha salvato un sacco di mal di testa
Srivathsa Harish Venkataramana,

1
Grazie. Purge seguito da autoremove (quasi dimenticato) ha fatto il trucco.
Nenad Vukicevic,

Nel mio caso su 14.04 ma probabilmente su 15.04 tailing /var/log/syslog, la verifica del tentativo fallito, quindi la modifica /etc/init/mongodb.confpuò anche aiutare se si utilizza una directory di dati, una directory di registro o un'istanza utente non standard.
Mangia da Joes il

25

Il team MongoDB afferma che non supporterà Ubuntu 15.04 e prevede invece di supportare 16.04 (vedi https://jira.mongodb.org/browse/SERVER-17742 ).

Ubuntu 15.04 fa avanzare il sistema init predefinito da Upstart a systemd. Non ho avuto successo avviando MongoDB 3.0 con systemd.

Puoi tornare a Upstart installando upstart-sysv:

sudo apt-get install upstart-sysv

Quindi riavviare e MongoDB dovrebbe essere attivo.

Spero di trovare un modo semplice per eseguire MongoDB su Ubuntu 15.04 senza tornare indietro nel tempo.


2
Questo è il modo migliore per risolvere questo problema ormai. Se qualcuno conosce altri modi, per favore condividi qui.
Fernando Kosh,

Nel mio caso, installare upstart-sysv e riavviare si blocca.
Didac Montero,

@DidacMontero Guarda wiki.ubuntu.com/SystemdForUpstartUser per altre opzioni
Moshe Revah

Funziona per me su Ubuntu 15.04, grazie per la soluzione!
Lil 'Bits,

Ha funzionato perfettamente per me.
slimflem,

4

Stai installando dai pacchetti pubblicati direttamente da mongodb.org. Dovresti installare dai pacchetti forniti nel repository Ubuntu. I pacchetti Debian / Ubuntu sono stati patchati con unità di servizio systemd, per riempire il buco lasciato da mongodb.org.

(Non c'è carenza di mongodb.servicefile di unità sul WWW. Non è nemmeno difficile scriverne uno. Ne ho.)

In particolare: troverai tale unità di servizio nel pacchetto versione 2.6 di mongodb-server per Ubuntu versione 15 . Quindi basta installare quel pacchetto.

(Notare che le unità di servizio fornite da Debian / Ubuntu non applicano le direttive sulle unità di servizio systemd consigliate da mongo .)

Ulteriori letture


Tuttavia, questo approccio non risolve il problema per coloro che desiderano MongoDB> = 3.0
Vendite Dielson,

Sì lo fa. Chiaramente non hai letto né il secondo paragrafo né l'ulteriore lettura.
JdeBP,

4

Ho creato uno script Systemd che sembra funzionare per 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

Assicurati di impostare la tua directory di dati in /etc/mongod.conf


1
Questa è la soluzione migliore
J. Bruni,

il link non funziona più
Hotbelgo il

Risolto il collegamento.
benileo,

Di sicuro, dovrebbe essere contrassegnato come la soluzione migliore.
Wédney Yuri,

1

Non è questa la risposta migliore? Da una domanda duplicata: https://askubuntu.com/a/694226/255468 di @sclausen


È solo la mancanza di un file di servizio per systemd. Non è necessario tornare all'inizio come Kartik o utilizzare un repository diverso da quello descritto in https://docs.mongodb.org/manual/installation/ .

Creare un file /lib/systemd/system/mongodb.service con il seguente contenuto:

[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

usa "mongodb" invece di "mongod"

vale a dire

sudo service mongodb start

sudo service mongodb stop

0

Molte di queste risposte sono correlate a Mongo 3.0, mentre la domanda posta specificamente su 2.6.

Ho avuto successo con l'installazione di 2.6 usando il repository Debian da 10gen. Questo sembra funzionare perfettamente 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

Fonte: Come installare MongoDB 2.6 su Ubuntu 14.10, 14.04 e 12.04 LTS


0

Mentre la domanda è per la versione 2.6. Stavo ottenendo lo stesso errore esatto Unit mongod.service failed to loadnel mio Ubuntu 15.04 per la versione 3.0.6. In definitiva risolto utilizzando lo stesso repository sibilante di cui sopra Dielson Sales.

E dopo l'installazione (seguendo i passaggi dettagliati di @Dielson Sales) si è verificato l'errore sopra riportato. Ecco come ho finalmente risolto.

A) Cambia i file di archivio dati predefiniti di MongoDB da / var / lib / mongodb a / data / db

  • Innanzitutto creare la nuova directory / data / db sudo mkdir -p /data/db

  • Aprire il file mongod.conf sudo gedit /etc/mongod.confe modificare la riga "dbpath" come di seguito

  • Sostituisci dbpath = / var / lib / mongodb TO dbpath = / data / db e salva il file.

  • Quindi eliminare il vecchio predefinito / var / lib / mongodb

  • Ora dobbiamo rendere tutte le directory / i file di proprietà dell'utente mongod

B) Quindi corri sudo chown -R mongodb:mongodb /data/db

E ora finalmente posso iniziare con mongo sudo service mongod start

E chcek con cui il servizio è in esecuzione sudo systemctl status mongod - Dovrebbe mostrare un messaggio simile al seguente

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

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

Ho dettagliato i miei passi nel mio post sul blog


0

Innanzitutto, scarica mongodb:

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

scarica estratto:

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

eseguire il mongod (mongodb-linux-x86_64-3.0.6.tgz / bin / mongod) con l'attributo -dbpath:

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

Può essere una directory vuota a scelta

e infine, esegui mongo (mongodb-linux-x86_64-3.0.6.tgz / bin / mongo)

./mongo

lavorato sul mio Ubuntu 15 :)

scusa per il mio pessimo inglese, vivo in Brasile


0

Dopo ore dalla ricerca, la soluzione era aggiornare il mio ubuntu dal 15.04 al 16.04 usando questo comando:

Passo 1

sudo do-release-upgrade -d 

Ci vorranno alcuni minuti, quindi non fatevi prendere dal panico, quindi è necessario rimuovere 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 ora, installa mongodb ma usando questa 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

Passaggio 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 questo è tutto.

Nota: se viene visualizzato un errore come "E: digitare" deb "nella prima riga. . . nel file mongodb-org-3.0.list

tutto quello che devi fare è entrare in questo file usando gedit ed eliminare 'all'inizio e alla fine della frase.


Questa parte "La soluzione era aggiornare il mio Ubuntu dal 15.04 al 16.04 ..." non ha senso al momento, perché 16.04 non è ancora stato rilasciato.
Clearkimura,

1
@clearkimura Sì, lo è. Bene, in alfa. E comunque, la seconda build giornaliera di Ubuntu 16.04 è installata sul mio computer e non ho riscontrato problemi.
Star OS

0

Ubuntu 15.04+ utilizza systemd invece di iniziare . Inizia con la guida ufficiale all'installazione di MongoDB . Quindi usa il loro ufficiale 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

Download, patch, installazione del servizio e impostazioni dir + autorizzazioni

$ 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

Avvia il servizio

$ sudo systemctl start mongod

Controlla lo stato del servizio

$ sudo systemctl status mongod

0

Hai fatto un refuso al tuo comando.

Prova invece ad usare questo: sudo service mongodb start

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.