MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mongod skarży się, że nie ma folderu /data/db

Utworzyłeś katalog w niewłaściwym miejscu

/data/db oznacza, że ​​znajduje się bezpośrednio w katalogu głównym „/”, podczas gdy utworzyłeś „data/db” (bez początkowego /) prawdopodobnie w innym katalogu, takim jak katalog domowy „/root”.

Musisz utworzyć ten katalog jako root

Albo musisz użyć sudo , np. sudo mkdir -p /data/db

Lub musisz zrobić su - zostać superużytkownikiem, a następnie utwórz katalog za pomocą mkdir -p /data/db

Uwaga:

MongoDB ma również opcję, w której możesz utworzyć katalog danych w innej lokalizacji, ale generalnie nie jest to dobry pomysł, ponieważ tylko trochę komplikuje takie rzeczy, jak odzyskiwanie bazy danych, ponieważ zawsze musisz ręcznie określić ścieżkę bazy danych. Nie polecałbym tego robić.

Edycja:

wyświetlany komunikat o błędzie to „Nie można utworzyć/otworzyć pliku blokady:/data/db/mongod.lock errno:13 Odmowa uprawnień” . Wygląda na to, że utworzony przez Ciebie katalog nie ma odpowiednich uprawnień i własności — musi być możliwy do zapisu przez użytkownika, który uruchamia proces MongoDB.

Aby zobaczyć uprawnienia i własność katalogu „/data/db/”, wykonaj następujące czynności:(tak powinny wyglądać uprawnienia i własność)

$ ls -ld /data/db/
drwxr-xr-x 4 mongod mongod 4096 Oct 26 10:31 /data/db/

Lewa strona 'drwxr-xr-x' pokazuje uprawnienia dla użytkownika, grupy i innych. 'mongod mongod' pokazuje, kto jest właścicielem katalogu i do której grupy należy ten katalog. Oba są w tym przypadku nazywane 'mongod'.

Jeśli Twój katalog „/data/db” nie ma powyższych uprawnień i własności, zrób to :

Najpierw sprawdź, jakiego użytkownika i jaką grupę ma twój użytkownik mongo:

# grep mongo /etc/passwd
mongod:x:498:496:mongod:/var/lib/mongo:/bin/false

Powinieneś mieć wpis dla mongod w /etc/passwd , ponieważ jest to demon.

sudo chmod 0755 /data/db
sudo chown -R 498:496 /data/db    # using the user-id , group-id

Możesz także użyć nazwy użytkownika i nazwy grupy w następujący sposób:(można je znaleźć w /etc/passwd i /etc/group)

sudo chown -R mongod:mongod /data/db 

to powinno sprawić, że będzie działać..

W poniższych komentarzach niektórzy używali tego:

sudo chown -R `id -u` /data/db
sudo chmod -R go+w /data/db

lub

sudo chown -R $USER /data/db 
sudo chmod -R go+w /data/db

Wadą jest to, że $USER jest kontem, które ma powłokę logowania. Demony nie powinny mieć powłoki ze względów bezpieczeństwa, dlatego w grep powyższego pliku z hasłami widać /bin/false.

Sprawdź tutaj, aby lepiej zrozumieć znaczenie uprawnień do katalogu:

http://www.perlfect.com/articles/chmod.shtml

Może również sprawdź jeden z samouczków, które możesz znaleźć przez Google:„UNIX dla początkujących”



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Dlaczego MongoDB jest tak szybki

  2. Mongoose:porównania identyfikatorów obiektów kończą się niepowodzeniem

  3. Mieszanie PostgreSQL i MongoDB (jako backendy Django)

  4. Projektuj pierwszy element w tablicy do nowego pola (agregacja MongoDB)

  5. MongoDB :znajdź wartość w tablicy z wieloma kryteriami