web-dev-qa-db-fra.com

Comment savoir où mongoDB stocke des données? (ce n'est pas dans la valeur par défaut/data/db!)

Mon hôte est venu avec une instance de mongodb et il n'y a pas de répertoire/db, je me demande donc maintenant ce que je peux faire pour savoir où se trouvent les données.

134
Zugwalt

mongod définit par défaut l'emplacement de la base de données sur /data/db/.

Si vous exécutez ps -xa | grep mongod et que vous ne voyez pas un --dbpath qui indique explicitement à mongod de regarder ce paramètre pour l'emplacement de la base de données et que vous n'avez pas dbpath dans votre mongodb.conf, l'emplacement par défaut sera: /data/db/ et vous devriez le consulter .

130
EhevuTov

Que dit votre fichier de configuration?

$ grep dbpath /etc/mongodb.conf

Si ce n'est pas correct, essayez ceci, vos fichiers de base de données seront présents sur la liste:

$ Sudo lsof -p `ps aux | grep mongodb | head -n1 | tr -s ' ' | cut -d' ' -f 2` | grep REG

C'est /var/lib/mongodb/* sur mon installation par défaut (Ubuntu 11.04).

Notez qu’il existe également un fichier /var/lib/mongodb/mongod.lock contenant le PID mongod pour des raisons pratiques, mais il se trouve dans le répertoire de données - que nous recherchons ...

53
Tomasz Nurkiewicz

Dans la nouvelle version de mongodb v2.6.4, essayez:

grep dbpath /etc/mongod.conf

Cela vous donnera quelque chose comme ça:

dbpath=/var/lib/mongodb

Et c'est là qu'il stocke les données.

27
TechyTimo

Bien que cette question s'adresse aux instances Linux/Unix de Mongo, il s'agit de l'un des premiers résultats de recherche, quel que soit le système d'exploitation utilisé. Il s'adresse donc aux futurs utilisateurs de Windows qui trouvent ceci:

Si MongoDB est configuré par défaut en tant que service Windows, vous pouvez généralement le trouver en consultant l'entrée "Chemin de l'exécutable" dans les propriétés du service MongoDB:

 Properties Window showing 'Path to Executable' option

14
Robotnik

D'après mon expérience, l'emplacement par défaut est /var/lib/mongodb après l'avoir fait.

Sudo apt-get install -y mongodb-org
14
zillabunny

J'ai trouvé le mien ici sur un système OSX/usr/local/var/mongodb

8
Achim Koellner

Je trouve que db.serverCmdLineOpts() est le moyen le plus robuste de trouver le chemin réel si vous pouvez vous connecter au serveur. Le fichier "parsed.storage.dbPath" contient le chemin actuellement utilisé par votre serveur. Il est disponible à la fois quand il provient de la configuration ou de la ligne de commande. 

Dans mon cas également, il était important de s’assurer que la valeur de configuration correspond à la valeur réelle (c’est-à-dire que la configuration n’a pas changé après le dernier redémarrage), ce qui n’est pas garanti par les solutions proposées ici.

db.serverCmdLineOpts()

Exemple de sortie:

{
    "argv" : [ 
        // --
    ],
    "parsed" : {
        "config" : "/your-config",
        "storage" : {
            "dbPath" : "/your/actual/db/path",
            // --
        }
    },
    "ok" : 1.0
}
4
glock18

Je l'ai trouvé simplement en fouillant dans /var/db. Merci pour l’aide cependant - je suis sûr que ces réponses s’appliquent à d’autres systèmes (par exemple Ubuntu) et aideront d’autres!

2
Zugwalt

Si vous pouviez en quelque sorte localiser mongod.log et le grep dessus

grep dbpath mongod.log

La valeur de dbpath est l'emplacement des données pour mongodb !! Bonne chance :)

2
Nilotpal

Pour Windows Accédez au dossier MongoDB\Server\4.0\bin et ouvrez le fichier mongod.cfg dans n’importe quel éditeur de texte. Puis localisez la ligne qui spécifie le paramètre dbPath. La ligne ressemble à quelque chose de similaire

dbPath: D:\Program Files\MongoDB\Server\4.0\data

1
Dibyendu Mitra Roy

Lorsque vous le démarrez, il vous montre. Mais je ne sais pas si c'est quelque chose que vous pouvez faire ou non sur votre hôte. Si vous avez accès à la ligne de commande et pouvez redémarrer le service, vous obtiendrez quelque chose comme:

    2016-11-15T12:57:09.182-0500 I CONTROL  [initandlisten]
 MongoDB starting : pid=16448 port=27017 dbpath=C:\data\db\ 
1
johnny

En fait, le répertoire par défaut où l’instance Mongodod stocke ses données est

/data/db sous Linux et OS X, 

\data\db sous Windows

Si vous avez installé MongoDB à l'aide d'un système de gestion de paquets , vérifiez le fichier /etc/mongod.conf fourni par vos packages pour voir si le répertoire est spécifié.

Le paramètre storage.dbPath est disponible uniquement pour mongod.

Les scripts d'initialisation de package Linux n'attendent pas de storage.dbPath que les valeurs par défaut soient modifiées. Si vous utilisez les packages Linux et changez storage.dbPath, vous devrez utiliser vos propres scripts d'initialisation et désactiver les scripts intégrés.

1
Prashant Pokhriyal