Creé /data/db
en el directorio raíz y ejecuté ./mongod
:
[initandlisten] exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /data/db, terminating
[initandlisten] shutdown: going to close listening sockets...
[initandlisten] shutdown: going to flush diaglog...
[initandlisten] now exiting
[initandlisten] shutting down with code:100
ls -ld /data/db
yid
así podemos asesorar.-ld
parte :)drwxrwxrwx. 4 mongod mongod 4096 Sep 17 18:18 /data/db
y todavía recibo el error. ¿Algunas ideas?Respuestas:
El problema es que el directorio que creó,
/data/db
es propiedad y solo el usuario root puede escribirlo, pero está ejecutando mongod como usted mismo. Hay varias formas de resolver esto, pero en última instancia, debe otorgar al directorio en cuestión los permisos correctos. Si esto es para producción, le aconsejaría que revise los documentos y lo piense detenidamente; probablemente desee tener especial cuidado.Sin embargo, si esto es solo para pruebas y solo necesita que esto funcione y continúe, puede intentar esto, lo que hará que todos puedan escribir en el directorio:
o esto, lo que hará que el directorio sea tuyo:
fuente
-R
cambiar todos los/data/db
archivos dentro de forma recursiva.chmod
generó un nuevo errorinitAndListen : operation not permitted
, perochown
funcionó.chmod -R 755 /data/db
En una Mac, tuve que hacer lo siguiente:
porque también había un archivo dentro del
/tmp
cual Mongo también necesitaba accesofuente
Si su sistema usa SELinux, asegúrese de usar el contexto correcto para el directorio que creó:
y clonar el contexto con:
fuente
Experimenté el mismo problema y la siguiente solución resolvió este problema. Deberías probar la siguiente solución.
fuente
En primer lugar, detenga todos los servicios de mongoDB , luego cree un directorio
/
, significa root, si no lo tiene, y elimine también el archivo de puerto. conceda todos los permisos a ese directorio, conviértase en el propietario de ese directorio, ejecute el siguiente comando:Ahora que ha terminado, simplemente inicie el servicio MongoDB, si no ayudó, intente cambiar el puerto como:
Nota: ¡ Para mí, todo esto funciona y espero que funcione para ti, chico!
fuente
Arregle los permisos de
/data/db
(o/var/lib/mongodb
):luego reinicie MongoDB, por ejemplo, usando
En caso de que eso no ayude, revise su mensaje de error si está utilizando un directorio de datos diferente a / var / lib / mongodb. En ese caso corre
fuente
fuente
Buenas soluciones, pero me pregunto por qué nadie está dando la solución para Windows.
Si está utilizando Windows solo tiene que "Ejecutar como administrador" el cmd.
fuente
Si está revisando sus registros de mongodb y está obteniendo dicho error, simplemente siga los pasos como lo hice. Ocurre debido a problemas de permisos con su
/data/db
directorio. Estoy usando ubuntu16.04 y encuentro la solución con la ejecución de dos comandos simples de la siguiente manera.Paso 1: otorgue permiso al directorio / data / db:
Paso 2: Intenta iniciar el servicio mongod como:
Paso 3: Verifique el estado del servicio mongod:
fuente
Si no necesita tener los directorios de la base de datos en la raíz, puede crear
data/db
en su directorio de inicio (mkdir -p ~/data/db
).Luego puede iniciar el servidor MongoDB con la
--dbpath
opción:(Esto supone que lo está iniciando desde una terminal. Por alguna extraña razón,
mongod
no acepta ~ como la ruta del directorio de inicio, de ahí el truco de sustitución de eco bash, también puede escribir/home/yourusername/data/db
)De hecho, no tiene que ser así
~/data/db
, puede estar en cualquier lugar que desee y de esta manera puede tener múltiples rutas de bases de datos y organizar todo muy bien. Puede que no sea la mejor opción para la producción (dependiendo de lo que quiera hacer), pero para el desarrollo funciona bien.fuente
Me ocupé del mismo problema:
Cambie al directorio MongoDB que contiene el
bin
directorio y ejecute:Al ejecutar MongoDB como usuario root, es posible que se le solicite que ingrese la contraseña de root. Si aún no puede ejecutar MongoDB, verifique los permisos para el directorio de datos de MongoDB. Entrar:
o escriba
ls -l /
los permisos para todos los directorios y archivos en el directorio, incluido el/data
directorio.El modo de permiso para el usuario raíz debe ser "
rwx
", lo que significa que el usuario raíz puede leer, escribir y ejecutar los archivos. Para que esto suceda, utilizamos:755
es una notación octal para establecer los permisos del/data
directorio en "rwxr-xr-x
", lo que significa que el usuario raíz puede leer, escribir y ejecutar, mientras que el "grupo" y "todos" solo pueden leer y ejecutar.Nota: cuando no pueda hacer esto, escriba:
para establecer el permiso como usuario root.
Luego, cuando haya terminado con ese paso, vuelva a capturar los modos de permiso usando:
que debería verse así:
No necesita preocuparse por el "
d
" al principio, y observe que los permisos reflejan "rwxr-xr-x
".Ahora puede volver a cambiar al directorio MongoDB y escribir:
para ejecutar MongoDB.
fuente
solo necesita ejecutar el comando como superusuario:
solo escribe desde la terminal: sudo su mongod
fuente
Si está en Windows y está intentando configurar MongoDB, ejecute cmd como Admnistrator es el camino a seguir, como Enrique sugirió anteriormente, véalo aquí
fuente
Esto funcionó para mí en Ubuntu LTS 20.04:
fuente