Hai creato la directory nel posto sbagliato
/data/db significa che si trova direttamente nella directory principale '/', mentre hai creato 'data/db' (senza la / iniziale) probabilmente solo all'interno di un'altra directory, come la directory home '/root'.
Devi creare questa directory come root
O devi usare sudo
, per esempio. sudo mkdir -p /data/db
Oppure devi fare su -
per diventare superutente, quindi creare la directory con mkdir -p /data/db
Nota:
MongoDB ha anche un'opzione in cui puoi creare la directory dei dati in un'altra posizione, ma in genere non è una buona idea, perché complica leggermente cose come il ripristino del DB, perché devi sempre specificare manualmente il percorso db. Non consiglierei di farlo.
Modifica:
il messaggio di errore che ricevi è "Impossibile creare/aprire il file di blocco:/data/db/mongod.lock errno:13 Permesso negato" . La directory che hai creato non sembra avere le autorizzazioni e la proprietà corrette:deve essere scrivibile dall'utente che esegue il processo MongoDB.
Per vedere le autorizzazioni e la proprietà della directory '/data/db/', procedere come segue:(questo è l'aspetto delle autorizzazioni e della proprietà)
$ ls -ld /data/db/
drwxr-xr-x 4 mongod mongod 4096 Oct 26 10:31 /data/db/
Il lato sinistro 'drwxr-xr-x' mostra i permessi per Utente, Gruppo e Altri. 'mongod mongod' mostra chi possiede la directory e a quale gruppo appartiene quella directory. Entrambi sono chiamati 'mongod' in questo caso.
Se la tua directory '/data/db' non ha i permessi e la proprietà di cui sopra, fallo :
Per prima cosa controlla quale utente e gruppo ha il tuo utente mongo:
# grep mongo /etc/passwd
mongod:x:498:496:mongod:/var/lib/mongo:/bin/false
Dovresti avere una voce per mongod in /etc/passwd , poiché è un demone.
sudo chmod 0755 /data/db
sudo chown -R 498:496 /data/db # using the user-id , group-id
Puoi anche usare il nome utente e il nome del gruppo, come segue:(si possono trovare in /etc/passwd e /etc/group )
sudo chown -R mongod:mongod /data/db
questo dovrebbe farlo funzionare..
Nei commenti qui sotto, alcune persone hanno usato questo:
sudo chown -R `id -u` /data/db
sudo chmod -R go+w /data/db
o
sudo chown -R $USER /data/db
sudo chmod -R go+w /data/db
Lo svantaggio è che $USER è un account che ha una shell di accesso. Idealmente, i demoni non dovrebbero avere una shell per motivi di sicurezza, ecco perché vedi /bin/false nel grep del file della password sopra.
Controlla qui per comprendere meglio il significato dei permessi della directory:
http://www.perlfect.com/articles/chmod.shtml
Magari dai un'occhiata anche a uno dei tutorial che puoi trovare su Google:"UNIX per principianti"