Paramétrage des permissions de lecture / écriture sur le dossier Mongodb
je viens de finir D'installer MongoDB sur OSX et de configurer une structure de répertoire avec sudo mkdir -p /data/db
.
Lorsque je tente de l'exécuter mongod
à partir de mon compte d'utilisateur, il renvoie une erreur indiquant que mon compte d'utilisateur n'a pas accès en lecture/écriture /data/db
.
Comment puis-je définir le bon autorisations de lecture/écriture sur mon compte pour /data/db
?
7 réponses
assurez-vous que le compte de l'utilisateur fonctionne mongod
les autorisations de répertoire. Vous pouvez vérifier les autorisations sont définies comme suit:
ls -ld /data/db/
si elles sont bien réglées, elles devraient ressembler à ceci..
drwxr-xr-x X user wheel XXX Date Time /data/db/
si les permissions sont mal définies, vous verrez probablement une erreur similaire à celle-ci lorsque vous tenterez de lancer mongod
exception in initAndListen: XXXXX Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
Pour obtenir les autorisations ensemble comme ils devraient l'être, vous pouvez exécuter la commande suivante
sudo chmod 0755 /data/db && sudo chown $USER /data/db
sudo chmod 777 /data/db/
devrait fonctionner sur Mac. Avant d'exécuter ce cmd, les permissions ressemblent à
drwxr-xr-x X User wheel Date /data/db
après l'exécution de la cmd
drwxrwxrwx X User wheel Date /data/db
C'est ce qui a fonctionné pour moi. J'utilise un Mac, mais vous pouvez essayer si vous utilisez windows.
sudo chmod 777 /data/db
il y a trois catégories d'utilisateurs: les propriétaires, les membres du groupe et tous les autres; chmod 777 /path/to/file
permet à chacun de lire/écrire le fichier, mais chmod 775 /path/to/file
permet seulement au propriétaire/groupe de lire / écrire le fichier. Certainement utiliser chmod 775 /path/to/file
si vous développez un serveur web.
quelques lectures utiles, surtout pour expliquer pourquoi 777, 775, et ainsi de suite sont utilisés plutôt que d'autres nombres: https://www.maketecheasier.com/file-permissions-what-does-chmod-777-means/
aucune de ces suggestions ne sont correctes, il y a quelque chose d'autre qui ne va pas avec mongodb-org-3.4.16-1.el7.x86_64. Il ne peut pas commencer avec un chemin db personnalisé.
[root@localhost vagrant]# chmod 777 /data/ /data/mongodb
[root@localhost vagrant]# chown mongod:mongod /data/ /data/mongodb
[root@localhost vagrant]# ls -lad /data/mongodb/
drwxrwxrwx. 2 mongod mongod 6 Jul 11 15:24 /data/mongodb/
[root@localhost vagrant]# systemctl start mongod
Job for mongod.service failed because the control process exited with error code. See "systemctl status mongod.service" and "journalctl -xe" for details.
[root@localhost vagrant]# stat /data/mongodb^C
[root@localhost vagrant]# !tail
tail /var/log/mongodb/mongod.log
2018-07-11T15:39:10.786+0000 I STORAGE [initandlisten] exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /data/mongodb, terminating
2018-07-11T15:39:10.786+0000 I NETWORK [initandlisten] shutdown: going to close listening sockets...
2018-07-11T15:39:10.786+0000 I NETWORK [initandlisten] shutdown: going to flush diaglog...
2018-07-11T15:39:10.786+0000 I CONTROL [initandlisten] now exiting
2018-07-11T15:39:10.786+0000 I CONTROL [initandlisten] shutting down with code:100
[root@localhost vagrant]# rpm -qa | grep mongo
mongodb-org-tools-3.4.16-1.el7.x86_64
mongodb-org-shell-3.4.16-1.el7.x86_64
mongodb-org-server-3.4.16-1.el7.x86_64
mongodb-org-mongos-3.4.16-1.el7.x86_64
mongodb-org-3.4.16-1.el7.x86_64
aucune des réponses données ne fonctionnait pour moi. J'ai fini par configurer mon utilisateur de système D'exploitation personnel pour qu'il soit l'utilisateur root, puis je suis allé manuellement dans le dossier db - j'ai cliqué à droite pour voir les informations - et je me suis ajouté avec des permissions de lecture et d'écriture.
juste courir
sudo chown group:user /data/db
où group
est un groupe de l'utilisateur