Mongod beschwert sich, dass es keinen Ordner / data / db gibt

475

Ich benutze heute zum ersten Mal meinen neuen Mac. Ich folge der Kurzanleitung auf mongodb.org bis zu dem Schritt, in dem das Verzeichnis / data / db erstellt wird. Übrigens habe ich die Homebrew-Route benutzt.

Also öffne ich ein Terminal und denke, ich bin in dem, was Sie als Home-Verzeichnis bezeichnet haben, denn wenn ich "ls" mache, sehe ich Ordner mit Desktop-Anwendungsfilmen, Musikbildern, Dokumenten und Bibliotheken.

Also habe ich eine gemacht

mkdir -p /data/db

Erstens heißt es, dass die Erlaubnis verweigert wurde. Ich habe eine halbe Stunde lang verschiedene Dinge ausprobiert und schließlich:

mkdir -p data/db

hat funktioniert. und wenn ich "ls", ein Verzeichnis von Daten und darin ein Datenbankordner verschachtelt existieren.

dann starte ich mongod und es beschwert sich darüber, keine daten / db zu finden

Habe ich etwas falsch gemacht?

Jetzt habe ich das getan

sudo mkdir -p /data/db

und wenn ich ein "ls" mache, sehe ich das Datenverzeichnis und das Datenbankverzeichnis. im db dir ist aber absolut nichts drin und wenn ich jetzt mongod laufe

Sun Oct 30 19:35:19 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
Sun Oct 30 19:35:19 dbexit: 
Sun Oct 30 19:35:19 [initandlisten] shutdown: going to close listening sockets...
Sun Oct 30 19:35:19 [initandlisten] shutdown: going to flush diaglog...
Sun Oct 30 19:35:19 [initandlisten] shutdown: going to close sockets...
Sun Oct 30 19:35:19 [initandlisten] shutdown: waiting for fs preallocator...
Sun Oct 30 19:35:19 [initandlisten] shutdown: lock for final commit...
Sun Oct 30 19:35:19 [initandlisten] shutdown: final commit...
Sun Oct 30 19:35:19 [initandlisten] shutdown: closing all files...
Sun Oct 30 19:35:19 [initandlisten] closeAllFiles() finished
Sun Oct 30 19:35:19 [initandlisten] shutdown: removing fs lock...
Sun Oct 30 19:35:19 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor
Sun Oct 30 19:35:19 dbexit: really exiting now

BEARBEITEN Fehlermeldung für abrufen

sudo chown mongod:mongod /data/db

chown: mongod: Invalid argument

Vielen Dank an alle!

Nik So.
quelle
1
Das "Ungültige Argument" bedeutet, dass der symbolische Name für den Mongo-Benutzer auf Ihrem System unterschiedlich ist. Sie verwenden wahrscheinlich ein anderes Paket oder einen anderen Installationsmechanismus für die Installation von MongoDB. Sie sollten in Ihren Dateien / etc / passwd und / etc / group nach dem symbolischen Namen (oder uid / gid) des Mongo-Benutzers suchen grep mongo /etc/passwd /etc/group. Wenn dies nicht funktioniert, überprüfen Sie den Namen, indem Sie den Eigentümer des Verzeichnisses überprüfen ls -ld /var/lib/mongo. Oder um zu sehen, wie die UID / GID dies tut : ls -lnd /var/lib/mongo. In meinem Fall drwxr-xr-x. 6 *487 480* 4096 Sep 20 2011 ...- dies bedeutet, verwenden Sie 487: 480 als Parameter
Tilo
Die Verwendung der UID / GID ist gleichbedeutend mit der Verwendung des symbolischen Namens. zB ersetzen Sie einfach 'mongod: mongod durch die UID / GID-Nummern, die Sie mit der obigen Methode gefunden haben.
Tilo
Nachdem wir nun wissen, wie man dieses Verzeichnis (data / db) richtig hinzufügt, warum wurde dieses Verzeichnis überhaupt nicht in die Installation aufgenommen?
Winux
Wenn Sie gerade auf MacOS 10.15 aktualisiert haben, könnte diese Antwort helfen: stackoverflow.com/questions/58283257/…
Adam Zerner
Wenn Sie die letzte Version von MAC haben: Mit dem neuen macOS Catalina-Update wird der Ordner "/ data / db" schreibgeschützt. Sie können ihn nicht ändern. Gehen Sie folgendermaßen vor, um eine Datenbank in einem anderen Ordner zu erstellen: 1) Ändern Sie das Mongod-Verzeichnis: sudo mongod --dbpath / System / Volumes / Data / data / db. 2) Geben Sie ihm einen Alias: alias mongod = "sudo mongod --dbpath / System / Volumes / Data / data / db "
Farbod Aprin

Antworten:

636

Sie haben das Verzeichnis am falschen Ort erstellt

/ data / db bedeutet, dass es sich direkt unter dem Stammverzeichnis '/' befindet, während Sie 'data / db' (ohne das führende /) wahrscheinlich nur in einem anderen Verzeichnis erstellt haben, z. B. im Homedirectory '/ root'.

Sie müssen dieses Verzeichnis als root erstellen

Entweder müssen Sie verwenden sudo, zsudo mkdir -p /data/db

Oder Sie müssen su -Superuser werden und dann das Verzeichnis mit erstellenmkdir -p /data/db


Hinweis:

MongoDB bietet auch eine Option, mit der Sie das Datenverzeichnis an einem anderen Speicherort erstellen können. Dies ist jedoch im Allgemeinen keine gute Idee, da dies beispielsweise die DB-Wiederherstellung nur geringfügig erschwert, da Sie den Datenbankpfad immer manuell angeben müssen. Das würde ich nicht empfehlen.


Bearbeiten:

Die Fehlermeldung lautet "Sperrdatei kann nicht erstellt / geöffnet werden: /data/db/mongod.lock errno: 13 Berechtigung verweigert" . Das von Ihnen erstellte Verzeichnis scheint nicht über die richtigen Berechtigungen und Eigentumsrechte zu verfügen. Es muss von dem Benutzer beschreibbar sein, der den MongoDB-Prozess ausführt.

Gehen Sie folgendermaßen vor, um die Berechtigungen und den Besitz des Verzeichnisses '/ data / db /' anzuzeigen: (So sollten die Berechtigungen und der Besitz aussehen)

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

Die linke Seite 'drwxr-xr-x' zeigt die Berechtigungen für den Benutzer, die Gruppe und andere. 'mongod mongod' zeigt an, wem das Verzeichnis gehört und zu welcher Gruppe dieses Verzeichnis gehört. Beide werden in diesem Fall "Mongod" genannt.

Wenn Ihr Verzeichnis '/ data / db' nicht über die oben genannten Berechtigungen und Eigentumsrechte verfügt, gehen Sie folgendermaßen vor :

Überprüfen Sie zunächst, welchen Benutzer und welche Gruppe Ihr Mongo-Benutzer hat:

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

Sie sollten einen Eintrag für mongod in / etc / passwd haben, da es sich um einen Daemon handelt.

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

Sie können den Benutzernamen und den Gruppennamen auch wie folgt verwenden: (Sie finden sie in / etc / passwd und / etc / group)

sudo chown -R mongod:mongod /data/db 

das sollte es funktionieren lassen ..

In den Kommentaren unten haben einige Leute dies verwendet:

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

oder

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

Der Nachteil ist, dass $ USER ein Konto mit einer Login-Shell ist. Daemons sollten aus Sicherheitsgründen idealerweise keine Shell haben. Deshalb sehen Sie / bin / false im Grep der obigen Passwortdatei.

Überprüfen Sie hier, um die Bedeutung der Verzeichnisberechtigungen besser zu verstehen:

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

Vielleicht sehen Sie sich auch eines der Tutorials an, die Sie über Google finden: "UNIX für Anfänger"

Tilo
quelle
2
Versuchen Sie es ls -ld /data/ und ls -ld /data/db/.. Sie sehen die Verzeichnisberechtigungen auf der linken Seite, dann den Besitz, dann den Verzeichnisnamen. Sie sollten sicherstellen, dass die Verzeichnisse mit der Benutzer-ID beschreibbar sind, auf der MongoDB ausgeführt wird.
2
@ Tilo Ja, ich habe sie gemacht. Der erste, der chmod ging in Ordnung, der zweite sagt "chown: mongod: Invalid argument"
Nik So
3
Dieser ganze Thread ist genau das, was ich durchmache. Aber ich kann auch nicht verstehen, wie sich die Benutzer- und Gruppen-ID von mongo auf meinem System befindet, und ich kann nirgendwo eine Dokumentation dazu finden. Ich stecke am Chown Mongod fest: Mongod Teil als seine Rückkehr eininvalid arguement
Trip
10
Update ging ich mit sudo touch /data/db/mongod.lockund sudo chmod 0777 /data/db/mongd.lock. Sie fing gleich an.
Reise
141
Laufen sudo chown -R `id -u` /data/dboder sudo chown -R $USER /data/dbstattdessen sudo chown mongod:mongod /data/dbden Trick für mich gemacht
heitortsergent
117

Nach dem gleichen Fehler wie Nik

chown: id -u: Ungültiges Argument

Ich fand heraus, dass dies anscheinend durch die Verwendung der falschen Art von Anführungszeichen (sollte Rückzitate gewesen sein ) in Ubuntu-Foren geschehen sein sollte

Stattdessen habe ich nur verwendet

sudo chown $ USER / data / db

Als Alternative und jetzt hat Mongod die Berechtigungen, die es benötigt.

jagough
quelle
4
Wenn jemand es nützlich findet: Ich hatte das gleiche Problem, aber die Fehlermeldung war etwas anders (sagte, dass die Gruppe 'mongod' nicht existiert, als ich chown mongod: mongod ausprobiert habe) -> jedoch hat die Verwendung von chown $ USER funktioniert Ich, danke ...
Trainoasis
6
Ich musste ein -R hinzufügen. "sudo chown -R $ USER / data / db"
Kevin
1
Perfekte Antwort für Neulinge,
Pyae Sone
90

Das funktioniert bei mir, gefunden in Kommentaren:

sudo chown -R $USER /data/db
Iman Mohamadi
quelle
2
Auch für mich. Wenn Sie Mongo über Homebrew unter meinem OSX installieren, werden kein Mongod-Benutzer und keine Gruppe hinzugefügt.
Zauker
73

Erstellen Sie den Ordner.

sudo mkdir -p /data/db/

Geben Sie sich die Erlaubnis für den Ordner.

sudo chown `id -u` /data/db

Dann kannst du mongodohne laufen sudo. Funktioniert unter OSX Yosemite

Connor Leech
quelle
1
Anstatt ein neues Verzeichnis zu erstellen, starten Sie den Mongod-Dienst neu. ZB: - Service Mongod Neustart
Devendra Bhat
bogdanmac:~ iliebogdanbarbulescu$ sudo chown `id -u` /data/db chown: /data/db: No such file or directory
bibscy
32

Um diesen Fehler unter OS X zu beheben, habe ich den Dienst neu gestartet und gestoppt: $ brew services restart mongodb $ brew services stop mongodb

Dann rannte ich mongod --config /usr/local/etc/mongod.conf und das Problem war weg.

Der Fehler schien nach dem Upgrade des Mongodb Homebrew-Pakets aufzutreten.

Orluke
quelle
23

Installation über Brew auf einem Mac, bei dem YOUR_USER_NAME und Mitarbeiter die Gruppe sind

sudo mkdir -p /data/db
sudo chmod +x+r+w /data/db/
sudo touch /data/db/mongod.lock
sudo chown YOUR_USER_NAME:staff /data/db
sudo chmod +x+r+w /data/db/mongod.lock
sudo chown YOUR_USER_NAME:staff /data/db/mongod.lock
Gal Bracha
quelle
@ MarkusWMahlberg Danke dafür. Es war eines dieser Dinge, die sich komisch anfühlten, aber funktionierten. Wer sollte der Eigentümer und die Gruppe dieser Datei sein?
Gal Bracha
Das hängt von Ihrer Verteilung ab. Schauen Sie sich /etc/passwdden Benutzernamen an - die Gruppe ist wahrscheinlich identisch. Es ist normalerweise entweder mongooder mongodb.
Markus W Mahlberg
@MarkusWMahlberg ok - ich habe es jetzt behoben - bei der Installation durch Brew werden Benutzer und Gruppe nicht erstellt, daher habe ich es einfach auf meinen eigenen Benutzernamen gesetzt. Sehen Sie, ob es jetzt sicherer ist. danke
Gal Bracha
Vielen Dank. Bei der Entwicklung auf einem Mac mit Brew wird das Problem behoben. Keine Notwendigkeit für mehr Sicherheit, wenn Sie nur Testdaten in Mongodb verwenden. @MarkusWMahlberg unter OS X ist der Benutzer, der mongod ausführt, YOUR_USER_NAME, wenn Sie es einfach mit "mongod &" starten.
Gaspard
22

Wenn Sie mongo ohne Argumente ausführen, wird davon ausgegangen, dass Sie auf dem Produktionscomputer ausgeführt werden, sodass die Standardspeicherorte verwendet werden.

für die Verwendung Ihrer eigenen Datenbank (dev oder nur eine andere):

./bin/mongod --dbpath ~/data/db
loreii
quelle
Erklärt dies, warum die in /etc/mongod.conf deklarierten Einstellungen nicht verwendet werden? Hatte Probleme mit einer Installation von 3.6.5 auf Ubuntu 16.04.
Dark Star1
Versuchen Sie, im ausführlichen (-v) Modus zu starten, oder erzwingen Sie explizit die Konfiguration (--config): docs.mongodb.com/manual/reference/program/mongod Wenn Sie mit apt-get installieren, starten Sie es mit service mongod status / start / Stop
Loreii
Ich habe in die Mongo-Protokolle geschaut. Alles, was immer wieder gesagt wurde, dass das Fehlen des Verzeichnisses / data / db den Start verhinderte. Sind Sie schließlich auf Ihre Antwort gestoßen, und das scheint der Grund für die Probleme zu sein?
Dark Star1
Dies funktioniert auch bei Verwendung von MongoDB im Linux-Subsystem unter Windows, wo es nicht möglich ist, / data / db im fs-Stammverzeichnis zu erstellen.
hiergiltdiestfu
8

Ich hatte dieses Problem mit einem vorhandenen Mongodb-Setup. Ich bin mir immer noch nicht sicher, warum es passiert ist, aber aus irgendeinem Grund konnte der Mongod-Prozess die Datei mongod.config nicht finden. Da die Konfigurationsdatei nicht gefunden werden konnte, wurde versucht, die DB-Dateien in / data / db zu finden, einem Ordner, der nicht vorhanden war. Die Konfigurationsdatei war jedoch noch verfügbar, daher habe ich sichergestellt, dass der Prozess über Berechtigungen für die Konfigurationsdatei verfügt, und den Mongod-Prozess mit dem Flag --config wie folgt ausgeführt:

mongod --config /etc/mongod.conf

In der Konfigurationsdatei selbst hatte ich folgende Einstellung:

storage:
  dbPath: /var/lib/mongodb

Und so könnte der Prozess den echten DB-Ordner wiederfinden.

Tal Delbari
quelle
1
Ich bestätige, dass es mir passiert ist. Anstelle der Konfigurationsdatei können wir einfach --dbpath = / var / lib / mongodb setzen. Ich dachte, ich hätte alle meine Daten verloren, aber sie sind immer noch da.
Lenhhoxung
8

Ich tat

brew install mongodb

am 2018-02-01 und das gab mir mongodbVersion 3.6.2.

Auf die Antwort von Orluke oben hin habe ich es einfach versucht

$ brew services restart mongodb

und alles erwachte zum Leben. Mein mongoose.createConnection()Anruf hat getan, was ich wollte. Der GUI MongoDB Compass , die Community-Version, würde eine Verbindung herstellen. Ich habe Compass verwendet, um mir die local.startup_logSammlung anzusehen . Das hatte ein Dokument, das Protokoll von mir, als ich gerade den mongoDB-Dienst startete, und das hatte

cmdLine:Object
    config:"/usr/local/etc/mongod.conf"

und tatsächlich gab es eine solche Akte:

$ more /usr/local/etc/mongod.conf
systemLog:
  destination: file
  path: /usr/local/var/log/mongodb/mongo.log
  logAppend: true
storage:
  dbPath: /usr/local/var/mongodb
net:
  bindIp: 127.0.0.1

und es gab ein /usr/local/var/mongodbVerzeichnis mit vielen obskuren Dateien. So scheint die Installation jetzt zu funktionieren.

Ich bin nicht sicher, ob brew services restartder Dienst bei der Anmeldung ausgeführt wird. So tat ich

brew services stop mongodb
brew services start mongodb

und hoffte, dass es nach dem Neustart wieder startet. Und tatsächlich tat es das auch. Tatsächlich denke ich, dass das Richtige nach der Erstinstallation ist

brew services start mongodb

und das sollte den Dienst starten und nach dem Neustart neu starten.

emrys57
quelle
7

Ihr Befehl hat die Verzeichnisstruktur im aktuellen Ordner erstellt, nicht im Stammverzeichnis Ihres Computers (was fehlt /).

Der erste Befehl war richtig, aber da Sie versuchen, einen Ordner in /einem geschützten Verzeichnis zu erstellen , müssen Sie ihm ein Präfix voranstellen sudo, was für "superuser do" steht. Sie werden dann nach Ihrem Passwort gefragt.

Der vollständige Befehl wäre also:

$ sudo mkdir -p /data/db
Russell
quelle
6

Sie müssen / data / db ... erstellen . Dies ist ein Verzeichnis mit dem Namen / data / in Ihrem Stammverzeichnis (dh / ) und ein Unterordner mit dem Namen / db / ...

Sie erhalten Berechtigungsfehler, da Sie mit sudo unter MacOS ein Verzeichnis in Ihrem Stammverzeichnis erstellen müssen. Mit sudo können Sie Befehle als Administrator ausführen.

Führen Sie dies stattdessen aus ...

$ sudo mkdir -p /data/db

Dadurch werden Sie zur Eingabe eines Kennworts aufgefordert. Es ist dasselbe Kennwort, das Sie zum Ändern der Systemeinstellungen verwenden (das kleine Dialogfeld, das geöffnet wird, wenn Sie versuchen, Änderungen in den Systemeinstellungen vorzunehmen, zum Beispiel), und wahrscheinlich dasselbe, das Sie zum Anmelden verwenden.

Justin Jenkins
quelle
6

Sie versuchen, ein Verzeichnis zu erstellen, auf das Sie keinen Root-Zugriff haben.

Zum Testen von Mongodb verwende ich einfach ein Verzeichnis aus meinem Benutzerverzeichnis wie:

cd
mkdir -p temp/
mongod --dbpath .

Dadurch wird eine Mongo-Datenbank in temp / aus Ihrem aktuellen Arbeitsverzeichnis erstellt

EhevuTov
quelle
6

Ich habe genau dieses Problem gelöst, indem ich die Ordner / data / db mit meinem Fenstermanager erstellt habe. Ich habe es zuerst über das Terminal versucht, und um einen Ordner im Stammverzeichnis zu erstellen, musste ich sudo verwenden.

Ich bin gerade mit Finder in das Stammverzeichnis gegangen und habe mit 'New Folder' einen neuen Ordner erstellt. Total für mich gearbeitet.

Hinweis: Ich verwende OSX.

Jupo
quelle
5

Nur eine schnelle Anmerkung:

Wenn Sie versucht haben, mongod auszuführen, ohne zuvor die Berechtigungen zu ändern, befindet sich wahrscheinlich eine mongod.lock-Datei (und einige andere Dateien) im Verzeichnis / data / db. Selbst nachdem Sie die Berechtigungen für das Verzeichnis / data / db geändert haben, um Zugriff auf Ihren $ USER zu gewähren, erhalten Sie weiterhin die Meldung "Sperrdatei kann nicht erstellt / geöffnet werden: /data/db/mongod.lock errno: 13 Berechtigung verweigert " Error. Wenn Sie ls -al / data / db ausführen, werden Sie wahrscheinlich feststellen, dass die Berechtigungen für die einzelnen Dateien weiterhin auf root für den Benutzer und nicht auf $ USER festgelegt sind. Sie sollten die Datei mongod.lock und auch die anderen entfernen. Wenn Sie mongod erneut ausführen, sollte alles funktionieren, und Sie können überprüfen, ob die Dateiberechtigungen mit den Verzeichnisberechtigungen übereinstimmen, indem Sie ls -al erneut ausführen.

whiny_nil
quelle
Das ist eine gute Anmerkung. Ich hatte keine Sperrdatei, musste aber den Besitzer meiner Daten und meines Datenbankordners ändern.
Caranicas
5

Erstellen Sie ein Verzeichnis im Stammverzeichnis

sudo mkdir -p /data/db

Wechseln Sie nun den Besitzer

sudo chown -R $USER /data

Du bist gut zu gehen!

mongod

Anstatt zu verwenden sudo mongod, müssen Sie nicht jedes Mal ein Passwort eingeben, aber für das eigentliche Projekt, das Sie verwenden sollten sudo mongod, geben Sie dem normalen Benutzer keine Erlaubnis!

BloodyLogic
quelle
4

Beim Versuch, mongodb zu starten, wurde immer wieder der folgende Fehler angezeigt.

"shutting down with code:100" 

Ich habe den folgenden Befehl verwendet:

./mongod --dbpath=~/mongo-data

Die Lösung für mich war, dass ich das "=" - Zeichen nicht brauchte und dies den Fehler verursachte. So tat ich

./mongod --dbpath ~/mongo-data

Ich wollte das nur rauswerfen, weil der Fehler in keiner Weise angibt, dass dies das Problem ist. Ich habe fast den Inhalt des Verzeichnisses ~ / mongo-data entfernt, um zu sehen, ob das geholfen hat. Ich bin froh, dass ich mich daran erinnerte, dass cli args manchmal nicht das "=" - Zeichen verwenden.

Cloudish123
quelle
3

Bis zu diesem Datum dachte ich auch, dass wir diesen Ordner / data / db erstellen müssen, um den Befehl mongod zu starten.

Aber vor kurzem habe ich versucht, mongod mit dem Dienstbefehl zu starten, und es hat bei mir funktioniert, und es war nicht erforderlich, das Verzeichnis / data / db zu erstellen.

service mongod start

Um den Status von Mongod zu überprüfen, können Sie den folgenden Befehl ausführen.

service mongod status
Devendra Bhat
quelle
3

Diese Lösung löst mein Problem

  1. Erstellen Sie ein Verzeichnis als

    sudo mkdir -p / data / db

  2. Dadurch wird ein Verzeichnis mit dem Namen db erstellt und anschließend versucht, mit Befehlen zu beginnen

    Sudo Mongod

Wenn Sie einen anderen Fehler oder ein Problem beim Starten von Mongod erhalten, finden Sie möglicherweise ein Problem als

Fehler beim Einrichten des Listeners: SocketException: Adresse wird bereits verwendet Wenn Sie einen anderen Fehler feststellen, müssen Sie den laufenden Prozess von mongod beenden, indem Sie in terminal as eingeben

ps ax | grep mongod
sudo kill ps_number

und finden Sie den Mongod Running Port und beenden Sie den Prozess. Eine andere Möglichkeit besteht darin, beim Starten von mongod as einen speziellen Port zu erstellen

sudo mongod --port 27018
Mehedi Abdullah
quelle
2

Geben Sie "id" am Terminal ein, um die verfügbaren Benutzer-IDs anzuzeigen, die Sie angeben können. Geben Sie dann einfach ein

"sudo chown -R idname / data / db"

Das hat bei mir geklappt! Hoffe, dies löst Ihr Problem.

Prakhar Agrawal
quelle
2

In aktuelleren Versionen von MongoDB habe ich 3.2.10, es wird standardmäßig in gespeichert

/var/lib/mongodb

illcrx
quelle
1
Laufen mongod --dbpath /var/lib/mongodbhilft unter diesen Umständen
Santiago Arizona
1

Nach der (Neu-) Installation des Tools-Pakets wurde auf einem Windows 10-Gerät ein ähnlicher Fehler angezeigt.

Ausnahme in initAndListen: NonExistentPath: Datenverzeichnis C: \ data \ db \ not found., wird beendet

Lösung Analog wie für die Linux-Systeme erläutert: Es reicht aus, nur den Ordner zu erstellen, um das zu startenmongod.exe (mongoDB-Server) .

Ich dachte, ich könnte es Leuten überlassen, die hier auf einem Windows-Gerät dieselben Suchbegriffe haben.

beim
quelle
1

Ich wollte hier nur darauf hinweisen, dass, wenn Sie dies versuchen und auf etwas stoßen mkdir: /data/db: Read-only file system, Sie bitte diesen Kommentar lesen, der mir geholfen hat: https://stackoverflow.com/a/58895373 .

Auf diese Weise wird jeder, der diese Antwort erhält und Control F für "schreibgeschützt" ausführt, dies sehen

blubberbo
quelle
0

Es gibt einen wirklich dummen Weg, um dieses Problem zu schaffen, für das ich Pionierarbeit geleistet habe:

1) Lassen Sie Ihre Mongo-Installation für eine Weile. 2) Kommen Sie zurück und der Server läuft nicht. 3) Versuchen Sie, ihn zu starten, aber verwenden Sie diesmal kein Sudo. 4) Mongo kann keine Daten finden / db /, da es jetzt angezeigt wird das Benutzer-Home-Verzeichnis anstelle des su-Home-Verzeichnisses

Ja, es ist wirklich dumm, aber wenn es eine Weile her ist, seit Sie im System waren, kann es Sie stolpern.

Kurze Antwort: Stellen Sie sicher, dass Sie mongo mit demselben implizierten Home-Verzeichnis ausführen

mtyson
quelle