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.

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"
},

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


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

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

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.


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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.