bash - programa - Configuración de permisos de lectura/escritura en la carpeta Mongodb
mongodb no se reconoce como un comando interno o externo programa o archivo por lotes ejecutable (7)
Asegúrese de que la cuenta de usuario que ejecuta mongod
tenga los permisos de directorio adecuados. Puede comprobar qué permisos están configurados de esta manera:
ls -ld /data/db/
Si están configurados correctamente deberían verse algo como esto ...
drwxr-xr-x X user wheel XXX Date Time /data/db/
Si los permisos están configurados incorrectamente, es probable que vea un error similar a este al intentar ejecutar 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
Para obtener los permisos establecidos, debe ejecutar el siguiente comando
sudo chmod 0755 /data/db && sudo chown $USER /data/db
Acabo de terminar de instalar MongoDB en OSX y configuré una estructura de directorios con sudo mkdir -p /data/db
.
Cuando intento ejecutar mongod
desde mi cuenta de usuario, devuelve un error que indica que mi cuenta de usuario no tiene permiso de lectura / escritura para /data/db
.
¿Cómo puedo establecer los permisos adecuados de lectura / escritura en mi cuenta para /data/db
?
Esto es lo que funcionó para mí. Estoy usando una Mac, aunque podrías intentarlo si estás usando Windows.
sudo chmod 777 /data/db
Hay tres categorías de usuarios: propietarios, los del grupo y todos los demás; chmod 777 /path/to/file
permite que todos lean / escriban el archivo, pero chmod 775 /path/to/file
permite que solo el propietario / grupo lea / escriba el archivo. Definitivamente use chmod 775 /path/to/file
si está desarrollando un servidor web.
Algunas lecturas útiles, especialmente para razonar por qué se usan 777, 775, etc., en lugar de otros números: https://www.maketecheasier.com/file-permissions-what-does-chmod-777-means/
Ninguna de estas sugerencias es correcta, hay algo más que está mal con mongodb-org-3.4.16-1.el7.x86_64. No puede comenzar con una ruta de db personalizada.
[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
Ninguna de las respuestas dadas funcionaba para mí. Terminé configurando mi usuario de sistema operativo personal para que fuera el usuario root, luego fui manualmente a la carpeta db (clic derecho para ver información) y me agregué con permisos de lectura y escritura.
Solo corre
sudo chown group:user /data/db
donde group
es un grupo de tu usuario
sudo chmod 777 /data/db/
Debería trabajar en Mac. Antes de ejecutar este cmd, los permisos parecen
drwxr-xr-x X User wheel Date /data/db
después de ejecutar el cmd
drwxrwxrwx X User wheel Date /data/db