To jest główny błąd:
wyjątek w initAndListen:NonExistentPath:Nie znaleziono katalogu danych /data/db., zakończenie
Catalina ma niespodziankę:nie pozwoli na zmiany w katalogu głównym (o tym również dyskutowano w wątku na forum):
% sudo mkdir -p /data/db
mkdir: /data/db: Read-only file system
Niestety, nie jest to wyraźnie określone w informacjach o wydaniu Cataliny firmy Apple, poza krótką wzmianką w funkcjach Cataliny:
macOS Catalina działa na dedykowanym woluminie systemowym tylko do odczytu
Ponieważ katalog /data/db
jest zakodowany jako domyślny MongoDB, obejściem jest określenie innej dbpath
który nie znajduje się w katalogu głównym. Na przykład:
mongod --dbpath ~/data/db
Spowoduje to umieszczenie danych MongoDB w twoim katalogu domowym. Upewnij się tylko, że ścieżka ~/data/db
faktycznie istnieje.
Alternatywna metoda
Alternatywną metodą jest postępowanie zgodnie z instrukcjami w Zainstaluj MongoDB Community Edition na macOS, wykorzystując brew
:
brew tap mongodb/brew
brew install mongodb-community
Spowoduje to domyślnie utworzenie kilku dodatkowych plików:
- plik konfiguracyjny (/usr/local/etc/mongod.conf)
- ścieżka katalogu dziennika (/usr/local/var/log/mongodb)
- ścieżka katalogu danych (/usr/local/var/mongodb)
Aby uruchomić mongod
możesz:
-
Uruchom polecenie ręcznie z wiersza poleceń (dla wygody można użyć aliasu):
mongod --config /usr/local/etc/mongod.conf
-
Uruchom MongoDB jako usługę przy użyciu
brew services
. Zwróć uwagę, że uruchomi to MongoDB jako samodzielny węzeł (nie zestaw replik), więc funkcje zależne od oploga, np. changestreams nie będą działać, chyba że zmodyfikujeszmongod
plik konfiguracyjny:brew services start mongodb-community