2011-11-21 6 views
1

J'avais besoin d'apprendre node.js et mongodb, ce qui m'oblige à utiliser mon mac osx, donc je suis nouveau dans l'interface de ligne de commande shell.Installation de mongodb Échec

Problème: Lorsque j'ai suivi les instructions sur le site Web mongodb et installé mongodb et essayé de s'exécuter, j'obtiens les messages d'erreur suivants. Une idée de ce qui a mal tourné?

What I Did:

  1. brew install mongodb
  2. sudo mkdir -p /data/db
  3. sudo chmod 0755 /data/db
  4. sudo chown mongod:mongod /data/db

Erreur:chown: mongod: Invalid argument

What I Did Next:

  1. mongod

Erreur:

Mon Nov 21 18:55:08 [initandlisten] MongoDB starting : pid=28304 port=27017 dbpath=/data/db/ 64-bit host=MacBook-Air.local 
Mon Nov 21 18:55:08 [initandlisten] db version v2.0.1, pdfile version 4.5 
Mon Nov 21 18:55:08 [initandlisten] git version: 3a5cf0e2134a830d38d2d1aae7e88cac31bdd684 
Mon Nov 21 18:55:08 [initandlisten] build info: Darwin erh2.10gen.cc 9.6.0 Darwin Kernel Version 9.6.0: Mon Nov 24 17:37:00 PST 2008; root:xnu-1228.9.59~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_40 
Mon Nov 21 18:55:08 [initandlisten] options: {} 
Mon Nov 21 18:55:08 [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 
Mon Nov 21 18:55:08 dbexit: 
Mon Nov 21 18:55:08 [initandlisten] shutdown: going to close listening sockets... 
Mon Nov 21 18:55:08 [initandlisten] shutdown: going to flush diaglog... 
Mon Nov 21 18:55:08 [initandlisten] shutdown: going to close sockets... 
Mon Nov 21 18:55:08 [initandlisten] shutdown: waiting for fs preallocator... 
Mon Nov 21 18:55:08 [initandlisten] shutdown: lock for final commit... 
Mon Nov 21 18:55:08 [initandlisten] shutdown: final commit... 
Mon Nov 21 18:55:08 [initandlisten] shutdown: closing all files... 
Mon Nov 21 18:55:08 [initandlisten] closeAllFiles() finished 
Mon Nov 21 18:55:08 [initandlisten] shutdown: removing fs lock... 
Mon Nov 21 18:55:08 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor 
Mon Nov 21 18:55:08 dbexit: really exiting now 

Faire un ls -ld /data/db donne:

drwxr-xr-x 2 root wheel 68 Nov 21 18:46 /data/db 

Répondre

1

Nyxynyx-

Il ressemble à un problème de permissions de fichiers. Vous avez créé le fichier/data/db en tant que root, donc root est le propriétaire, et la commande chown a échoué (avez-vous déjà un utilisateur nommé mongod sur votre système, sinon, cette commande échouera) donc le propriétaire était toujours root. Mais alors vous avez exécuté mongod en tant qu'utilisateur normal, donc il était incapable de créer un fichier de verrouillage dans le répertoire de données. Vous pouvez:

  1. Run mongod en tant que root
  2. Ou, créez un utilisateur mongod, et exécuter "chown" à nouveau pour mongod et exécuter mongod en tant qu'utilisateur mongod
  3. Ou, changer la propriété du répertoire de données à votre compte d'utilisateur actuel, et lancez mongo en tant que votre compte d'utilisateur.
0

J'ai eu le même problème, et voici comment je l'ai fixé très facilement:

Mon DB a été rempli avec l'ordure que je ne voulais pas plus, alors j'ai supprimé mon dossier /data/ via Terminal et réémergentes créé avec:

sudo mkdir /data/ 

Je pense que la création du dossier avec un accès root via le terminal était à l'origine du problème. Au lieu de cela, je viens de tout effacer à nouveau, puis je suis allé dans le dossier racine en utilisant Finder.

Faites un clic droit> Nouveau dossier> entrez le mot de passe> renommer les données> nouveau dossier> renomme db

Je viens de rencontrer mongod comme je le fais normalement, et cela a fonctionné!

Je sais que c'est une façon "fictive" de faire les choses pour éviter toutes les permissions hax et autres, mais ça a marché!

0

vous devez exécuter mongod avec l'utilisateur root, il suffit d'exécuter la commande suivante

sudo mongod 
0

Qu'est-ce que u fait:

1.`brew install mongodb`-fine 
2.`sudo mkdir -p /data/db`-fine 
3.`sudo chmod 0755 /data/db`-fine 
4.`sudo chown mongod:mongod /data/db`-fine 

maintenant effectuer l'étape suivante:

./mongod --dbpath /data/db --port 27017

./mongo --port 27020

Questions connexes