web-dev-qa-db-fra.com

MongoDB ne fonctionne pas. "ERREUR: dbpath (/ data / db) n'existe pas."

Je reçois le message d'erreur suivant lorsque j'essaie d'exécuter "mongod" dans le terminal. J'ai essayé de désinstaller, de réinstaller et de redémarrer la machine. Toute suggestion sur la façon de le faire fonctionner serait incroyable.

ERREUR:

dbpath (/data/db) does not exist.
 Create this directory or give existing directory in --dbpath.
 See http://dochub.mongodb.org/core/startingandstoppingmongo

Note latérale: Node a également cessé de fonctionner sur ma machine à peu près au même moment où j'ai eu cette erreur.

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: failed to connect to [localhost:27017]

Toute aide serait très appréciée!

64
user3810163

Cela devrait permettre de s'assurer que le répertoire est configuré au bon endroit pour que Mongo puisse le trouver:

Sudo mkdir -p /data/db/

Sudo chown `id -u` /data/db

181
lpappone

Vous devez créer le répertoire sur root/data/db ou définir tout autre chemin avec la commande suivante:

mongod --dbpath /srv/mongodb/

Voir le lien exemple

14
Muhammad Ali

J'ai résolu le problème avec:

Sudo mongod --dbpath=/var/lib/mongodb puis mongo pour accéder à la coquille mongodb.

6
gabrielhws

Changez l'utilisateur du nouveau répertoire de données:

chown mongodb [répertoire_rute]

Et essayez une autre fois pour démarrer le service Mongo

début de service

Je résous le même problème avec cela.

2
Raugaral

Les démons (se terminant généralement par d) démarrent normalement en tant que services. Le démarrage du service (démon) permettra à mongodb de fonctionner comme prévu (sans modification de l’autorisation s’il est bien intégré à votre distribution). Je le démarre en utilisant le service nommé mongodb au lieu de démarrer mongod directement - sur la distribution avec systemd enable au démarrage, puis je lance comme ceci:

Sudo systemctl enable mongodb    
Sudo systemctl start mongodb

ou, sur distro avec upstart (si vous avez/etc/init) ou init (si vous avez /etc/init.d) ( https://www.tecmint.com/systemd-replaces-init-in -linux / ) à la place:

Sudo service mongodb enable
Sudo service mongodb start

Si vous avez une distribution avec rc ("exécuter des commandes") telle que Gentoo (paramètres dans /etc/init.d) ( https://forums.gentoo.org/viewtopic-t-854138-start-0 .html ) lancer:

rc-update add mongodb default 
/etc/init.d/mongodb start 

Dans une distribution/version de FreeBSD qui a encore rc (vérifiez si votre version est passée à systemd, sinon voyez ci-dessous):

  • ajoutez la ligne suivante à /etc/rc.conf:

    mongod_enable = "YES"

  • ensuite:

    Sudo service mongod start

Après le démarrage du service, un utilisateur non classé peut utiliser mongo et chaque utilisateur dispose de données distinctes.

1
poikilos