537 votes

MongoDB Mongod se plaint qu’il n’y a aucun dossier/data/db

Je suis avec mon nouveau mac pour la première fois aujourd'hui. Je suis le guide de démarrage sur le mongodb.org jusqu'à l'étape où l'on crée les données /répertoire db. btw, j'ai utilisé le homebrew route.

Donc j'ouvre un terminal, et je pense que je suis à ce que vous avez appelé le Répertoire de base, pour quand je fais "ls", je vois des dossiers du Bureau de l'Application des Films de la Musique des Photos et Documents de la Bibliothèque.

J'ai donc fait un

mkdir -p /data/db

tout d'abord, il dit que le refus d'une autorisation. J'ai continué à essayer différentes choses pour une demi heure et enfin :

mkdir -p data/db

travaillé. et quand je "ls", un répertoire de données et imbriquée dans une base de données dossier n'existe pas.

ensuite, j'ai le feu au mongod et il se plaint de ne pas trouver de données/db

Ai-je fait quelque chose de mal?

J'ai fait l'

sudo mkdir -p /data/db

et quand je fais un "ls" je ne afficher les données dir et la db dir. à l'intérieur de la db dir cependant, il n'y a absolument rien en elle et quand j'ai mongod

Sun Oct 30 19:35:19 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
Sun Oct 30 19:35:19 dbexit: 
Sun Oct 30 19:35:19 [initandlisten] shutdown: going to close listening sockets...
Sun Oct 30 19:35:19 [initandlisten] shutdown: going to flush diaglog...
Sun Oct 30 19:35:19 [initandlisten] shutdown: going to close sockets...
Sun Oct 30 19:35:19 [initandlisten] shutdown: waiting for fs preallocator...
Sun Oct 30 19:35:19 [initandlisten] shutdown: lock for final commit...
Sun Oct 30 19:35:19 [initandlisten] shutdown: final commit...
Sun Oct 30 19:35:19 [initandlisten] shutdown: closing all files...
Sun Oct 30 19:35:19 [initandlisten] closeAllFiles() finished
Sun Oct 30 19:35:19 [initandlisten] shutdown: removing fs lock...
Sun Oct 30 19:35:19 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor
Sun Oct 30 19:35:19 dbexit: really exiting now

MODIFIER Obtention message d'erreur pour

sudo chown mongod:mongod /data/db

chown: mongod: Invalid argument

Merci à chacun de vous!

675voto

Tilo Points 13833

Vous avez créé le répertoire dans le mauvais endroit

/data/db signifie qu'il est directement sous le " / "à la racine du répertoire, alors que vous avez créé des" données/db "(sans le /) probablement dans un autre répertoire, par exemple le "/root " homedirectory.

Vous devez créer ce répertoire en tant que root

Soit vous devez utiliser sudo , par exemple, sudo mkdir -p /data/db

Ou vous avez besoin de faire su - pour devenir superutilisateur, et ensuite créer le répertoire mkdir -p /data/db


Note:

MongoDB a aussi une option où vous pouvez créer le répertoire de données dans un autre emplacement, mais ce n'est généralement pas une bonne idée, parce que cela complique légèrement les choses comme DB de récupération, parce que vous devez toujours spécifier le db-chemin manuellement. Je ne vous recommande pas de le faire.


Edit:

le message d'erreur que vous obtenez est "Impossible de créer/ouvrir un fichier de verrouillage: /data/db/mongod.verrouillage errno:13 Permission denied". Le répertoire que vous avez créé ne semble pas avoir la bonne propriété et les autorisations -- il doit être accessible en écriture par l'utilisateur qui exécute la MongoDB processus.

Pour voir les autorisations et la propriété de l' '/data/db/' annuaire, faites ceci: (c'est ce que les autorisations et la propriété devrait ressembler)

$ ls -ld /data/db/
drwxr-xr-x 4 mongod mongod 4096 Oct 26 10:31 /data/db/

Le côté gauche 'drwxr-xr-x' indique les autorisations pour l'Utilisateur, le Groupe et les Autres. 'mongod mongod' montre qui possède le répertoire, et le groupe qui ce répertoire appartient. Les deux sont appelés "mongod" dans cette affaire.

Si votre "/data/db " répertoire n'ont pas les autorisations et la propriété ci-dessus, faites ceci:

sudo chmod 0755 /data/db
sudo chown mongod:mongod /data/db

que devrait faire le travail..

Cliquez ici pour mieux comprendre le sens des autorisations de répertoire:

http://www.dartmouth.edu/~rc/help/faq/permissions.html

Peut-être aussi consulter l'un des tutoriels que vous pouvez trouver via Google: "d'UNIX pour les débutants"

118voto

jagough Points 181

Après avoir la même erreur que Nik

chown: id-u: Invalid argument

J'ai découvert ce qui, apparemment, s'est produite en utilisant le mauvais type de guillemets (doit avoir été backquotes) Ubuntu Forums

Au lieu de cela j'ai simplement utilisé

sudo chown $USER /data/db

comme une alternative et maintenant mongod a les autorisations dont il a besoin.

7voto

Russell Points 5472

Votre commande vous avez créé la structure de répertoire dans le dossier en cours, pas la racine du répertoire de votre ordinateur (qui est ce que le manque / ).

La première commande était juste, mais parce que vous essayez de créer un dossier en /, ce qui est un répertoire protégé, vous devez préfixer avec sudo, qui est l'abréviation de "super-utilisateur n'". Vous serez alors invité à entrer votre mot de passe.

Si l'intégralité de la commande serait:

$ sudo mkdir -p /data/db

6voto

Jupo Points 103

J’ai surmonté ce même problème en créant les dossiers de /data/db avec mon gestionnaire de fenêtres. J’ai essayé de le faire si le terminal dans un premier temps, et afin de créer un dossier dans le répertoire racine, j’ai dû utiliser sudo.

Seulement, je suis allé dans le répertoire racine à l’aide du Finder et créé un nouveau dossier à l’aide de « Nouveau dossier ». Tout a fonctionné pour moi.

Remarque : J’utilise OS x.

5voto

Justin Jenkins Points 10501

Vous devez créer /data/db ... c'est un répertoire appelé /data/ dans votre racine (c /) et sous-dossier qu'il s'appelle /db/ ...

Vous êtes l'obtention de l'autorisation des erreurs parce que vous avez besoin d'utiliser sudo pour créer un répertoire dans votre répertoire racine dans MacOS, sudo permet d'exécuter des commandes en tant qu'administrateur.

Donc, exécuter ce lieu ...

$ sudo mkdir -p /data/db

Cela vous demandera un mot de passe, c'est le même mot de passe que vous utilisez pour modifier les paramètres du système (cette petite boîte de dialogue qui s'ouvre lorsque vous essayez de changer les choses dans les Préférences Système pour ecample), et probablement le même que vous utilisez pour vous connecter.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X