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

mongodb 3.4.3 Odmowa uprawnień błąd 267 wiredtiger_kv_engine.cpp z ubuntu 16

Mam problemy z uruchomieniem mongod jako usługi:Jak to możliwe, że działa, gdy wykonuję sudo mongod -f /etc/mongod.conf, ale po uruchomieniu z sudo service mongod start pojawia się błąd w dzienniku

sudo polecenie uruchamia mongod z root uprawnienia (czyli dostęp superużytkownika). Jeśli uruchomisz mongod jako usługa użytkownik i grupa są konfigurowane w definicji usługi (mongodb dla obu w twoim przykładzie).

Nie ma potrzeby uruchamiania mongod przetwarzać jako root użytkownika, co jest zdecydowanie odradzane zgodnie z powszechną praktyką bezpieczeństwa dotyczącą zasady najmniejszych uprawnień.

Jeśli chcesz przetestować konfigurację z wiersza poleceń, możesz użyć sudo do uruchomienia z określonym użytkownikiem zamiast z domyślnym (root).

Na przykład:

sudo -u mongodb mongod -f /etc/mongod.conf 

Ogólnie rzecz biorąc, najlepiej jest użyć konfiguracji usługi, a nie uruchamiać mongod ręcznie. Przy ręcznym wywołaniu będziesz musiał również pamiętać o uwzględnieniu parametrów, takich jak ścieżka pliku konfiguracyjnego (ponieważ nie ma domyślnej ścieżki konfiguracyjnej). Bez pliku konfiguracyjnego mongod używa również domyślnych opcji, takich jak dbPath z /data/db .

Asercja:28595:13:Odmowa pozwolenia src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 267

Prawdopodobną przyczyną błędów uprawnień jest wcześniejsze uruchomienie mongod jako root użytkownik. Niektóre katalogi i pliki mogą być teraz własnością użytkownika root, więc mongodb użytkownik nie ma do nich dostępu. Twój konkretny błąd dotyczy dostępu do plików w katalogu danych (tj. skonfigurowanej storage.dbPath w mongod.conf ).

Zakładając, że nie zmieniłeś domyślnych ścieżek w pliku mongod.conf plik, powinieneś być w stanie rekurencyjnie dostosować uprawnienia, aby pasowały do ​​tego, co mongod.service definicja oczekuje.

Najpierw upewnij się, że zatrzymałeś swojego mongod przykład, jeśli jest aktualnie uruchomiony.

Następnie rekurencyjnie dostosuj uprawnienia do oczekiwanego użytkownika i grupy:

# storage.dbPath
sudo chown -R mongodb:mongodb /var/lib/mongodb

# systemLog.path
sudo chown -R mongodb:mongodb /var/log/mongodb

Teraz powinieneś być w stanie uruchomić mongod jako usługa. Jeśli usługa się nie uruchomi, dalsze szczegóły powinny znaleźć się w mongod plik dziennika (zakładając, że plik dziennika jest zapisywalny przez mongodb użytkownik usługi).



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb zlicza wszystkie elementy tablicy we wszystkich obiektach spełniających kryteria

  2. Znajdź wszystkie zduplikowane dokumenty w kolekcji MongoDB według pola klucza

  3. Ustawianie czasu wygaśnięcia kolekcji w mongodb przy użyciu mongoose

  4. (węzeł:3341) Ostrzeżenie o wycofaniu:mangusta:mpromise

  5. Jak Trello przechowuje dane w MongoDB? (Zbiór na tablicę?)