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).