MongoDb si arresta con Code 100 [chiuso]


91

Ho seguito i documenti MongoDb per configurare il mio primo MongoDb,

Quando avvio MongoDB utilizzando il comando

C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe

Ottengo il seguente errore inserisci qui la descrizione dell'immagine

Risposte:


149

MongoDB necessita di una cartella per archiviare il database. Crea una C:\data\db\directory:

mkdir C:\data\db

e quindi avvia MongoDB:

C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe

A volte la C:\data\dbcartella esiste già a causa di un'installazione precedente. Quindi se per questo motivo mongod.exenon funziona, puoi eliminare tutto il contenuto dalla C:\data\dbcartella ed eseguire mongod.exenuovamente.


Se vedi i dettagli dell'errore, c'è una riga che dice che la directory C:\data\db\ non è stata trovata. Usa:mkdir C:\data\db
cespon

@cespon Gold tag ..: P
Aravind

Il mio era in realtà/mongodb_data/db
Fabricio

Assicurati che i file e la directory dei dati siano di proprietà dell'utente e del gruppo mongodb (su linux).
PeterM

71

Per gli utenti di macOS per risolvere questo problema:

È necessario eseguire i seguenti passaggi:

Crea la directory "db". Qui è dove risiederanno i file di dati Mongo. È possibile creare la directory nella posizione predefinita eseguendo:

sudo mkdir -p /data/db

Assicurati che la /data/dbdirectory disponga delle autorizzazioni corrette eseguendo:

sudo chown -R `id -un` /data/db

Ora sei pronto e puoi correre sudo mongodper avviare il server Mongo.

Non funziona se corri solo mongod

Fonte .


5
lo stesso in Ubuntu 16.04
Manoj Rana

Ottengo mkdir: /data/db: Read-only file systemquando eseguo il primo comando. Come posso risolvere questo problema? Grazie.
LC

@LC Aggiungi sudo al comando mkdir
Itay Bachar il


15

Per modificare la cartella db predefinita C:\data\dbin Windows, il comando è:

--dbpath

Per esempio:

\mongod --dbpath C:\myfolder

7

Utenti Mac

Invece di eseguire MongoDB con:

sudo mongod

Puoi usare mongodinvece se:

  1. Individua la cartella dei dati di mongodb (di solito ~ / data)
  2. Aggiungi il permesso di lettura e scrittura con sudo chmod -R ugo+rw data

Se è necessario utilizzare sudoquando si esegue mongodb ( sudo mongod), significa che non si dispone dell'autorizzazione di lettura e scrittura sulla cartella dei dati di mongodb


1
Grazie per questo. Ho dovuto aggiungere il permesso di leggere + scrivere su / data Non capisco cosa ho sbagliato ma ho impostato la mia cartella di dati su ~ / Applicazioni / mongodb / data
vinsentos

3

Si prega di eseguire i seguenti passaggi:

  1. Come hanno detto altri amici, dovresti prima creare una directory per memorizzare i dati del tuo database. Questa cartella potrebbe essere qualcosa del tipo:

    C: \ mongo-data

  2. Dalla riga di comando vai alla posizione in cui hai installato mongodb e dove risiede mongod.exe. Nel mio caso il percorso completo è:

    C: \ Programmi \ MongoDB \ Server \ 3.4 \ bin

  3. Da qui esegui mongod.exe e passagli il percorso della cartella che hai creato nel passaggio uno usando il flag --dbpath come segue:

    mongod.exe --dbpath "C: \ mongo-data"

Nota : se sei su Windows, è necessario utilizzare le virgolette doppie ("") sopra per funzionare correttamente.

In questo modo otterrai qualcosa di simile al seguente:

2017-06-14T12:45:59.892+0430 I NETWORK  [thread1] waiting for connections on port 27017

Se utilizzi virgolette singole ('') su Windows, otterrai:

2017-06-14T01:13:45.965-0700 I CONTROL  [initandlisten] shutting down with code:100

Spero che aiuti a risolvere il problema.


1

Per eseguire Mongo DB demon con il mongodcomando, dovresti avere una directory del database, probabilmente devi eseguire:

mkdir C:\data\db

Inoltre, MongoDB deve avere i permessi di scrittura per quella directory o dovrebbe essere eseguito con i permessi di superutente, come sudo mongod.


1

Ho continuato a ricevere il seguente errore quando ho provato ad avviare mongodb (su mac os).

"shutting down with code:100"

Stavo usando il seguente comando:

./mongod --dbpath=~/mongo-data

La soluzione per me era che non avevo bisogno del segno "=" e questo stava causando l'errore. Così ho fatto

./mongod --dbpath ~/mongo-data

Volevo solo buttarlo là fuori perché l'errore non specifica in alcun modo che questo sia il problema. Ho quasi rimosso il contenuto della directory ~ / mongo-data per vedere se questo aiutava. Sono contento di aver ricordato che gli argomenti cli a volte non usano il segno "=".


1

per prima cosa devi creare la directory dei dati in cui MongoDB memorizza i dati. Il percorso della directory dei dati predefinito di MongoDB è il percorso assoluto \ data \ db sull'unità da cui avvii MongoDB.

se hai installato in C: / drive, devi creare la directory data \ db. per eseguire questo comando di esecuzione in cmd

C:\>mkdir data\db

Per avviare MongoDB, esegui mongod.exe.

"C:\Program Files\MongoDB\Server\4.2\bin\mongod.exe" --dbpath="c:\data\db"

L'opzione --dbpath punta alla directory del database. inserisci qui la descrizione dell'immagine

Connettiti a MongoDB.

"C:\Program Files\MongoDB\Server\4.2\bin\mongo.exe"

per verificare che tutto funzioni correttamente:

show dbs

inserisci qui la descrizione dell'immagine


1

1.Se mostra un errore (chiusura con codice 100) significa che non sta trovando la posizione del file desiderata.

1.a Se è precedente a macOS Catalina, crea una directory con sudo mkdir -p / data / db e dai i permessi per usarlo
sudo chown -Rid -un / data / db.

1.b se è macOS Catalina in poi, crea sudo mkdir -p / System / Volumes / data / db e dagli i permessi sudo chown -R id -un/ System / Volumes / data / db.

2.Avviare i servizi mongo db brew run mongodb-community

3.Digitare mongod o mongod --dbpath / System / Volumes / Data / data / db

4.E se il mongod mostra un errore (chiusura con codice 48)
significa che la porta è già in uso, quindi puoi fare due cose

4.a O si cambia la porta di mongod specificando il
numero di porta mongod --dbpath / System / Volumes / Data / data / db —port 27018.

4.b Oppure puoi terminare il processo su quella porta trovando il processo con sudo lsof -i: 27017 e poi uccidere con il comando
kill -9

5.Ripetere i passaggi 2 e 3.


1

Per gli utenti macOS, prenditi cura del seguente problema:

se installi MongoDB Community su macOS usando .tgz Tarball

(( A partire da macOS 10.15 Catalina, Apple limita l'accesso alla directory dei dati predefinita di MongoDB di / data / db. Su macOS 10.15 Catalina, è necessario utilizzare una directory di dati diversa, come / usr / local / var / mongodb. ))

puoi risolverlo come segue:

(MacOS Catalina in poi)

Apple ha creato un nuovo volume in Catalina per motivi di sicurezza. Se sei su Catalina, devi creare la cartella / data / db in System / Volumes / Data.

Usa questo comando:

sudo mkdir -p /System/Volumes/Data/data/db

Quindi, usa questo comando per dare le autorizzazioni:

sudo chown -R `id -un` /System/Volumes/Data/data/db

questo sostituirà normale

sudo mkdir -p /data/db

Assicurati che la directory / data / db disponga delle autorizzazioni corrette eseguendo:

sudo chown -R `id -un` /data/db

una volta terminato e avviato mongoDB, puoi utilizzare quanto segue nel terminale:

sudo mongod --dbpath /System/Volumes/Data/data/db

0

In MacOS : -

Se hai dimenticato di fornire il percorso del database creato in precedenza durante l'esecuzione del server mongo, verrà visualizzato l'errore precedente.

sudo ./mongod --dbpath ../../mongo-data/

Riferimento

Nota: - ./mongod && ../../mongo-data è il percorso relativo. Quindi puoi evitarlo configurando nella variabile d'ambiente

Riferimento


0

Per Windows ho lo stesso problema.

La soluzione era: devo eseguire la riga di comando come amministratore.


1
Suggerirei di riformulare la risposta a qualcosa del genere: "Se hai questo problema in Windows, assicurati di eseguire la riga di comando come amministratore".
Filnor

0

se hai già la directory, controlla i permessi della directory o prova a riavviare mongo con sudo. sudo brew services avvia mongodb


0

Nel mio caso, ho ricevuto un errore simile e stava accadendo perché avevo eseguito mongod con l'utente root e che aveva creato un file di registro accessibile solo da root. Potrei risolvere questo problema cambiando la proprietà da root all'utente da cui normalmente esegui mongod. Il file di registro era in / var / lib / mongodb / journal /


0

Se stai usando Virtualbox controlla la tua VM.

docker-machine ssh

df -h

Guarda dev / sda1 se non hai spazio libero ciò potrebbe essere dovuto a un gran numero di immagini o contenitori. puoi rimuoverli usando "docker rm" e "docker rmi"


0

Questo codice di uscita verrà fornito anche se stai modificando le versioni di MongoDB e la directory dei dati non è compatibile, ad esempio con un downgrade. Sposta la vecchia directory altrove e crea una nuova directory (secondo le istruzioni fornite in altre risposte).


0

Aravind.

È successo anche a me perché ho fermato MongoDB dal Task Manager.

La creazione della cartella C: \ data \ db e l'avvio di MongoDB in C: \ Program Files \ MongoDB \ Server \ 3.4 \ bin \ mongod.exe ha funzionato per me, come suggerito da cespon, ma MongoDB non mostrava nessuno dei miei database creato in precedenza.

Quindi, rimuovere la cartella C: \ data \ db e riparare l'installazione con il programma di installazione di MongoDB , ho recuperato i miei dati e avviato normalmente MongoDB.

(Sono molto nuovo con MongoDB, ma mi ha aiutato a risolvere questo problema e recuperare i dati delle anteprime di maggio).


0

digitato mongod e ottenendo l'errore

Errori:

eccezione in initAndListen: NonExistentPath: directory dati / data / db non trovata, terminazione

si spegne con il codice 100

Quindi prova con (crea dati e cartella db con tutte le autorizzazioni)

mongod --dbpath = / data

usa la nuova scheda e digita mongo.

> usa dbs

Se stai ancora affrontando problemi, puoi verificare la presenza di mac catalina: ( https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x-tarball/ )

per Windows: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows-unattended/

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.