MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB kann das Datenverzeichnis nach dem Upgrade auf Mac OS 10.15 (Catalina) nicht finden

Dies ist der Hauptfehler:

Ausnahme in initAndListen:NonExistentPath:Datenverzeichnis /data/db not found., terminating

Catalina hat eine überraschende Änderung:Es erlaubt keine Änderungen am Root-Verzeichnis (dies wurde auch in einem Forum-Thread diskutiert):

% sudo mkdir -p /data/db
mkdir: /data/db: Read-only file system

Leider wird dies in den Catalina-Versionshinweisen von Apple nicht explizit erwähnt, abgesehen von einer kurzen Erwähnung in den Catalina-Funktionen:

macOS Catalina wird auf einem dedizierten, schreibgeschützten Systemvolume ausgeführt

Da das Verzeichnis /data/db als MongoDB-Standard codiert ist, besteht eine Problemumgehung darin, einen anderen dbpath anzugeben die sich nicht im Stammverzeichnis befindet. Zum Beispiel:

mongod --dbpath ~/data/db

Dadurch werden die Daten von MongoDB in Ihrem Home-Verzeichnis abgelegt. Stellen Sie einfach sicher, dass der Pfad ~/data/db tatsächlich existiert.

Alternative Methode

Eine alternative Methode besteht darin, den Anweisungen unter Installation der MongoDB Community Edition unter macOS zu folgen, indem Sie brew nutzen :

brew tap mongodb/brew
brew install mongodb-community

Dadurch werden standardmäßig einige zusätzliche Dateien erstellt:

  • die Konfigurationsdatei (/usr/local/etc/mongod.conf)
  • der Protokollverzeichnispfad (/usr/local/var/log/mongodb)
  • der Datenverzeichnispfad (/usr/local/var/mongodb)

Um mongod auszuführen Sie können entweder:

  • Führen Sie den Befehl manuell über die Befehlszeile aus (dies kann der Einfachheit halber mit einem Alias ​​versehen werden):

    mongod --config /usr/local/etc/mongod.conf
    
  • Führen Sie MongoDB mithilfe von brew services als Dienst aus . Beachten Sie, dass dies MongoDB als eigenständigen Knoten (kein Replikatsatz) ausführt, sodass Funktionen, die vom Oplog abhängen, z. Changestreams funktionieren nicht, es sei denn, Sie ändern den mongod Konfigurationsdatei:

    brew services start mongodb-community