web-dev-qa-db-fra.com

MongoDB ne fonctionne que lorsqu'il est exécuté en tant que root sur Ubuntu - problème de répertoire de données

J'ai installé MongoDB avec le packages officiels (mongodb-stable), et j'ai suivi le Quickstart guide qui comprend:

Par défaut, MongoDB stockera les données dans /data/db, mais il ne créera pas automatiquement ce répertoire. Pour le créer, faites:

$ Sudo mkdir -p /data/db/
$ Sudo chown `id -u` /data/db

Vous pouvez également dire à MongoDB d'utiliser un répertoire de données différent, avec le --dbpath option.

MongoDB ne démarre que si je lance Sudo mongod - si j'essaye de lancer juste mongod j'obtiens l'erreur:

Mon Mar 14 15:27:07 [initandlisten] couldn't open /data/db/test.ns errno:13 Permission denied
Mon Mar 14 15:27:07 [initandlisten]   couldn't open file /data/db/test.ns terminating
Mon Mar 14 15:27:07 dbexit:

Ce qui donne?

38
YXD

Vous avez créé /data/db en tant que root, il dispose donc de ces autorisations. Vous pouvez modifier les autorisations de votre compte d'utilisateur, ou tout ce que vous avez en tant que mongo en cours d'exécution.

chown -R username /data/db

ou /data

Vous pouvez également définir un groupe

chown -R username.groupname

Le -R le fait récursivement, donc cela affectera tous les fichiers que vous avez créés en exécutant déjà mongoDB en tant que root.

72
Joe Bowman