Emplacement de la base de données mongodb sur Mac

91

Je suis un peu nouveau sur mac ainsi que sur mongodb.

J'ai un doute étrange, accéder à la base de données créée à l'aide de mongodb sur mac?

Je sais, dans Windows, il y a un dossier appelé c: \ data \ db, où mes fichiers de base de données sont stockés.

Comment et où dans mac, la base de données est stockée.

Je me souviens avoir fait quelque chose comme

sudo mkdir -p /data/db
sudo chown `id -u` /data/db

pour créer un tel dossier sur mac, mais je n'ai trouvé aucun fichier de base de données dans ce dossier, bien que j'aie créé une base de données.

Où sont enregistrés les fichiers de base de données sur Mac?

Toute aide sera grandement appréciée.

Espagnol89
la source

Réponses:

93

Le répertoire de données par défaut de MongoDB est /data/db.

Cela peut être remplacé par une dbpathoption spécifiée sur la ligne de commande ou dans un fichier de configuration.

Si vous installez MongoDB via un gestionnaire de packages tel que Homebrew ou MacPorts, ces installations créent généralement un répertoire de données par défaut autre que / data / db et définissent le dbpath dans un fichier de configuration.

Si un dbpath a été fourni au mongoddémarrage, vous pouvez vérifier la valeur dans le mongoshell:

db.serverCmdLineOpts()

Vous verriez une valeur comme:

"parsed" : {
    "dbpath" : "/usr/local/data"
},
Stennie
la source
1
Il convient également de noter que votre mongodserveur n'a pas à s'exécuter en tant rootqu'utilisateur. Vous devez vous assurer que vos autorisations de répertoire de données incluent un accès en lecture / écriture pour le compte utilisateur mongodutilisé par le serveur.
Stennie
1
Lorsque j'entre getCommandLineOpts (), j'obtiens quelque chose comme `ReferenceError: getCommandLineOpts n'est pas défini (shell): 1´. De l'aide??
Spaniard89
4
Quelle version de MongoDB utilisez-vous? Vous devriez pouvoir vérifier cela avec db.serverStatus().version. Je crois que l'assistant shell pour a getCommandLineOpts()été ajouté à MongoDB 2.0. Vous pouvez également essayer: db.getSiblingDB("admin").runCommand({getCmdLineOpts:1}).
Stennie
J'utilise la version 2.2.2, quand j'ai essayé, db.getSiblingDB("admin").runCommand({getCmdLineOpts:1})j'ai obtenu quelque chose comme { "argv" : [ "./bin/mongod" ], "parsed" : { }, "ok" : 1 }cela signifie-t-il que mon répertoire de base de données n'est pas défini?
Spaniard89
Je l'ai eu, j'ai créé un dossier appelé data à la racine et un sous-dossier db. Maintenant, il montre le chemin. Merci beaucoup pour l'aide.
Spaniard89
194

Si mongodb est installé via Homebrew, l'emplacement par défaut est:

/ usr / local / var / mongodb

Voir la réponse de @simonbogarde pour l'emplacement d'autres fichiers intéressants qui sont différents lors de l'utilisation de Homebrew.

Mark Edington
la source
Je cherchais de la lumière dans l'obscurité en vérifiant la formule sur github.com/Homebrew/homebrew/blob/master/Library/Formula/ ... merci.
alexserver
135

Merci @Mark, j'oublie ça encore et encore. Après avoir installé MongoDB avec Homebrew:

  • Les bases de données sont stockées dans le répertoire / usr / local / var / MongoDB / répertoire
  • Le fichier mongod.conf est ici: /usr/local/etc/mongod.conf
  • Les journaux mongo peuvent être trouvés dans / usr / local / var / log / mongodb /
  • Les binaires mongo sont ici: / usr / local / Cellar / mongodb / [version] / bin
Simonbogarde
la source
Cela a frappé le clou sur la tête. Merci
Mark Pieszak - Trilon.io
2
Quand je vérifie / usr / local / var / mongodb / , le répertoire est vide. Et non, je n'ai pas changé le dbpath par défaut de mongoldb. Pouvez-vous m'aider à trouver le fichier de base de données?
Nishi Bangar
Ajoutez un lien symbolique pour cela: sudo ln -s / usr / local / var / mongodb / data / db
TheJeff
Je ne semble pas avoir un dossier etcdans /usr/local/. Où se trouvent les fichiers de configuration ou comment puis-je trouver lol?
Reinier68
25

J'ai eu le même problème, avec la version 3.4.2

pour l'exécuter (si vous l'avez installé avec homebrew) exécutez le processus comme ceci:

$ mongod --dbpath /usr/local/var/mongodb
Runnerdave
la source
Cette solution a résolu mon problème après la mise à niveau vers la v4.2.5 via Homebrew.
Matthias Hagemann
10

Je viens d'installer mongodb 3.4 avec homebrew . (Brew install mongodb) Il recherche / data / db par défaut.

https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/

Voici la sortie de l'exécution de mongod.

csonuryilmaz
la source
9
C'est si vous démarrez mongoddirectement depuis le terminal. Si vous utilisez brew services start mongodb, le processus utilisera le fichier de configuration /usr/local/etc/mongod.confauquel, à son tour, spécifie un dbPathde/usr/local/var/mongodb
Molomby
Merci @Molomby pour la contribution. Je n'ai pas commencé comme ça, je ne savais même pas de cette façon. :)
csonuryilmaz
1

Env : macOS Mojave 10.14.4

Installer : homebrew

Lieu :/usr/local/Cellar/mongodb/4.0.3_1

Remarque : si la version mise à jour par brew upgrade mongo, le dossier 4.0.4_1sera supprimé et remplacé par le nouveau dossier de version

jyjin
la source