web-dev-qa-db-fra.com

Mongodb - Différence entre l'exécution des bases de données "mongo" et "mongod"

Donc, je suis sûr qu'il me manque quelque chose de simple ici, mais lorsque j'exécute mongo en tant que démon (en utilisant mongod - fork ou simplement mongod), je vois un contenu de base de données différent de celui que j'exécute "mongo" sur la machine hôte .

Ma seule hypothèse est que les données sont stockées ailleurs que/data/db lorsqu'il exécute uniquement le shell et passe à/data/db lorsque je démarre le mongod. Dans ce cas, comment obtenir mes données lors de l'exécution de mongod?

44
Jesse

Je pense qu'il y a une certaine confusion ici.

mongod est le "Mongo Daemon", c'est essentiellement le processus Host pour la base de données. Lorsque vous démarrez mongod, vous dites essentiellement "démarrez le processus MongoDB et exécutez-le en arrière-plan" . mongod a plusieurs paramètres par défaut, tels que le stockage de données dans /data/db et fonctionnant sur le port 27017.

mongo est le shell de ligne de commande qui se connecte à une instance spécifique de mongod. Lorsque vous exécutez mongo sans paramètres, il se connecte par défaut à l'hôte local sur le port 27017. Si vous exécutez mongo sur une combinaison machine: port non valide, il ne parviendra pas à se connecter (et vous indiquera que beaucoup).

Idéalement, lorsque vous faites autre chose que de "jouer", vous utiliserez Paramètres de ligne de commande pour démarrer mongod. Par la même mesure, vous devez démarrer le shell mongo avec des instructions explicites.

Sur la base de votre description, je pense que vous pouvez rencontrer un problème concernant l'utilisation des bases de données par défaut. Essayez de démarrer mongo avec ce qui suit (où dbname est le nom de votre base de données)

./mongo localhost:27017/dbname
90
Gates VP

Oui, cela pourrait être une réponse naïve à cette question mais je la propose pour que les gens la comprennent facilement!

Mongod:

mongod

(Abréviation de Mongo Daemon) est un processus d'arrière-plan utilisé par le serveur MongoDB pour faire avancer les choses. Ce processus est responsable de la gestion de l'ensemble des tâches du serveur MongoDB telles que l'acceptation des demandes, la réponse aux utilisateurs, la gestion des besoins en mémoire des opérations du serveur MongoDB et d'autres éléments essentiels au fonctionnement du serveur MongoDB.

TLDR; Fondamentalement, c'est le serveur MongoDB

Mongo:

Mongo

d'autre part, est une interface interactive JavaScript Shell pour MongoDB, qui fournit une interface puissante pour les administrateurs système ainsi qu'un moyen pour les développeurs de tester les requêtes et les opérations directement avec la base de données. mongo fournit également un environnement JavaScript entièrement fonctionnel à utiliser avec un MongoDB

TLDR; Fondamentalement, je pense que c'est un client mongodb qui peut être utilisé comme un shell pour avoir accès au serveur de base de données MongoDB exécuter mes instances mongod

4
Mr. Suryaa Jha