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.
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 .
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 ...
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.
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:
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
J'ai trouvé le mien ici sur un système OSX/usr/local/var/mongodb
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
}
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!
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 :)
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
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\
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.