MongoDB 2.6 non si avvia su Ubuntu 15.04

51

I 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

Finì 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?

    
posta Akihiro HARAI 02.05.2015 - 00:10

13 risposte

65

Ho installato dal repository wheeze di debian e funziona perfettamente.

Prima 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

Utilizza 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 nuovamente:

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

Dopodiché, puoi avviare succesivamente il server:

sudo service mongod start

o

systemctl start mongod

(come chiarito da Ernie Hershey in risposta al commento di Roman Gaufman qui: link )

    
risposta data Dielson Sales 09.05.2015 - 01:13
25

Il team di MongoDB dice che non supporteranno Ubuntu 15.04 e pianificheranno di supportare invece la 16.04 (vedi link ) .

Ubuntu 15.04 avanza il sistema init predefinito da Upstart a systemd. Non ho avuto successo iniziando MongoDB 3.0 con systemd.

Puoi tornare su Upstart installando upstart-sysv :

sudo apt-get install upstart-sysv

Quindi riavvia e MongoDB dovrebbe essere attivo.

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

    
risposta data Moshe Revah 02.05.2015 - 17:41
4

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

(Non c'è carenza di mongodb.service di file di unità sul WWW. Non è difficile nemmeno scriverne uno.)

In particolare: troverai tale unità di servizio in il pacchetto mongodb-server versione 2.6 per Ubuntu versione 15 . Quindi installa il pacchetto.

(Si noti che le unità di servizio fornite da Debian / Ubuntu non si applicano the mongo - direttive unità di servizio systemd raccomandate .)

Ulteriori letture

risposta data JdeBP 03.05.2015 - 23:37
4

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

link

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

    
risposta data benileo 03.11.2015 - 22:12
1

Non è questa la migliore risposta? Da una domanda doppia: link di @sclausen

È solo la mancanza di un file di servizio per systemd. Non è necessario tornare al punto di partenza come ha fatto Kartik o utilizzare un repository diverso da quello descritto in link .

Crea 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
    
risposta data Sudhanshu 05.01.2016 - 14:33
1

link

Sembra che questo probabilmente non sarà completamente corretto per & gt; 2.6.3 fino a Ubuntu 16.04, a meno che non ci sia una forte protesta.

Quindi la soluzione per me era di pubblicare:

sudo apt-get install --reinstall mongodb
    
risposta data Fabien Thetis 09.03.2016 - 15:49
1

usa "mongodb" invece di "mongod"

cioè

sudo service mongodb start

sudo service mongodb stop
    
risposta data Yasitha Bandara 03.03.2018 - 18:11
0

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

Ho avuto successo nell'installazione di 2.6 utilizzando il repository Debian da 10gen. Sembra che funzioni 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

    
risposta data Tom Spencer 16.06.2015 - 11:40
0

Mentre la domanda è per la versione 2.6. Stavo ottenendo esattamente lo stesso errore Unit mongod.service failed to load nella mia Ubuntu 15.04 per la versione 3.0.6. Risolto definitivamente usando lo stesso repository wheezy menzionato da Dielson Sales sopra.

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

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

  • Crea innanzitutto la nuova directory / data / db sudo mkdir -p /data/db

  • Apri il file mongod.conf sudo gedit /etc/mongod.conf e cambia la riga "dbpath" come sotto

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

  • Quindi elimina il vecchio valore predefinito / var / lib / mongodb

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

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

E ora finalmente posso avviare mongo con sudo service mongod start

E chcek che il servizio è in esecuzione con 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 passaggi nel mio post sul blog

    
risposta data Rohan_Paul 03.09.2015 - 02:38
0

Per prima cosa, scarica mongodb:

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

estrai download:

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

esegui 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 di tua scelta

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

./mongo

ha funzionato sulla mia ubuntu 15 :)

scusa per il mio pessimo inglese, vivo in Brasile

    
risposta data Augusto José Miranda Amaral 08.09.2015 - 14:58
0

Dopo ore dalla ricerca, la soluzione era di aggiornare la mia ubuntu da 15.04 a 16.04 usando questo comando:

Passaggio 1

sudo do-release-upgrade -d 

Ci vorranno pochi minuti quindi non spaventarti, allora devi rimuovere mongodb:

Passaggio 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 si verifica un errore come "E: il tipo" deb "nella prima riga. . . nel file mongodb-org-3.0.list

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

    
risposta data أبو محمد حازم 03.01.2016 - 07:13
0

Ubuntu 15.04+ utilizza systemd invece che upstart . Inizia con guida all'installazione ufficiale di MongoDB . Quindi utilizza il loro mongod.service :

ufficiale
[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

Scarica, patch, installa il servizio e installa le autorizzazioni dir +

$ 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
    
risposta data A T 03.02.2016 - 06:21
0

Hai fatto un refuso nel tuo comando.

Prova a utilizzare questo: sudo service mongodb start

    
risposta data erdem karayer 04.05.2016 - 15:24

Leggi altre domande sui tag