MongoDb se apaga con Code 100 [cerrado]

91

Seguí los documentos de MongoDb para configurar mi primer MongoDb,

Cuando inicio MongoDB usando el comando

C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe

Obtuve el siguiente error ingrese la descripción de la imagen aquí

Aravind
fuente

Respuestas:

149

MongoDB necesita una carpeta para almacenar la base de datos. Crea un C:\data\db\directorio:

mkdir C:\data\db

y luego inicie MongoDB:

C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe

A veces, la C:\data\dbcarpeta ya existe debido a una instalación anterior. Entonces, si por este motivo mongod.exeno funciona, puede eliminar todo el contenido de la C:\data\dbcarpeta y ejecutar mongod.exenuevamente.

cespon
fuente
Si ve los detalles del error, hay una línea que dice que C:\data\db\ no se encontró el directorio . Uso:mkdir C:\data\db
cespon
@cespon Gold tag ..: P
Aravind
El mío era en realidad/mongodb_data/db
Fabricio
Asegúrese de que el directorio de datos y los archivos sean propiedad del usuario y grupo de mongodb (en Linux).
PeterM
71

Para que los usuarios de macOS solucionen este problema:

Debe seguir los siguientes pasos:

Cree el directorio "db". Aquí es donde vivirán los archivos de datos de Mongo. Puede crear el directorio en la ubicación predeterminada ejecutando:

sudo mkdir -p /data/db

Asegúrese de que el /data/dbdirectorio tenga los permisos correctos ejecutando:

sudo chown -R `id -un` /data/db

Ya está todo listo y puede ejecutar sudo mongodpara iniciar el servidor Mongo.

No funciona si solo corres mongod

Fuente .

Mohamed
fuente
5
mismo en ubuntu 16.04
Manoj Rana
Me sale mkdir: /data/db: Read-only file systemal ejecutar el primer comando. ¿Cómo puedo arreglar esto? Gracias.
LC
@LC Agregar sudo al comando mkdir
Itay Bachar
15

Para cambiar la carpeta db predeterminada C:\data\dben Windows, el comando es:

--dbpath

Por ejemplo:

\mongod --dbpath C:\myfolder
Xu Guanghao
fuente
7

Usuarios de Mac

En lugar de ejecutar MongoDB con:

sudo mongod

Puede usar mongoden su lugar si:

  1. Localice la carpeta de datos de mongodb (normalmente ~ / data)
  2. Agregar permiso para leer + escribir con sudo chmod -R ugo+rw data

Si necesita usar sudoal ejecutar mongodb ( sudo mongod), eso significa que no tiene permiso de lectura y escritura en la carpeta de datos de mongodb

Jay C
fuente
1
Gracias por esto. Tuve que agregar permiso para leer + escribir en / data No entiendo qué hice mal, pero configuré mi carpeta de datos en ~ / Applications / mongodb / data
vinsentos
3

Siga los siguientes pasos:

  1. Como mencionaron otros amigos, primero debe crear un directorio para almacenar los datos de su base de datos. Esta carpeta podría ser algo como:

    C: \ mongo-data

  2. Desde la línea de comandos, navegue hasta donde instaló mongodb y donde reside mongod.exe. En mi caso, la ruta completa es:

    C: \ Archivos de programa \ MongoDB \ Server \ 3.4 \ bin

  3. Desde aquí, ejecute mongod.exe y pásele la ruta a la carpeta que creó en el paso uno usando la bandera --dbpath de la siguiente manera:

    mongod.exe --dbpath "C: \ mongo-data"

Tenga en cuenta : Si está en Windows, es necesario utilizar comillas dobles ("") en lo anterior para que funcione correctamente.

De esta forma obtendrá algo como lo siguiente:

2017-06-14T12:45:59.892+0430 I NETWORK  [thread1] waiting for connections on port 27017

Si usa comillas simples ('') en Windows, obtendrá:

2017-06-14T01:13:45.965-0700 I CONTROL  [initandlisten] shutting down with code:100

Espero que ayude a resolver el problema.

Reza Baradaran Gazorisangi
fuente
1

Para ejecutar Mongo DB demon con el mongodcomando, debe tener un directorio de base de datos, probablemente necesite ejecutar:

mkdir C:\data\db

Además, MongoDB necesita tener permisos de escritura para ese directorio o debe ejecutarse con permisos de superusuario, como sudo mongod.

Dmytro Medvid
fuente
1

Seguí recibiendo el siguiente error cuando intenté iniciar mongodb (en mac os).

"shutting down with code:100"

Estaba usando el siguiente comando:

./mongod --dbpath=~/mongo-data

La solución para mí fue que no necesitaba el signo "=" y esto estaba causando el error. Así que lo hice

./mongod --dbpath ~/mongo-data

Solo quería tirar esto porque el error de ninguna manera especifica que este es el problema. Casi elimino el contenido del directorio ~ / mongo-data para ver si eso ayudaba. Me alegro de recordar que cli args a veces no usan el signo "=".

Cloudish123
fuente
1

primero tienes que crear un directorio de datos donde MongoDB almacena los datos. La ruta del directorio de datos predeterminada de MongoDB es la ruta absoluta \ data \ db en la unidad desde la que inicia MongoDB.

si tiene la instalación en C: / unidad, entonces debe crear el directorio data \ db. para hacer este comando de ejecución en cmd

C:\>mkdir data\db

Para iniciar MongoDB, ejecute mongod.exe.

"C:\Program Files\MongoDB\Server\4.2\bin\mongod.exe" --dbpath="c:\data\db"

La opción --dbpath apunta al directorio de su base de datos. ingrese la descripción de la imagen aquí

Conéctese a MongoDB.

"C:\Program Files\MongoDB\Server\4.2\bin\mongo.exe"

para comprobar que todo funciona bien:

show dbs

ingrese la descripción de la imagen aquí

Hrithik sharma
fuente
1

1.Si muestra un error (cerrándose con el código 100) eso significa que no está encontrando la ubicación deseada del archivo.

1.a Si es anterior a macOS Catalina, cree un directorio con sudo mkdir -p / data / db y otorgue permisos para usarlo
sudo chown -R id -un/ data / db.

1.b si es macOS Catalina en adelante, haga sudo mkdir -p / System / Volumes / data / db y dele los permisos sudo chown -R id -un/ System / Volumes / data / db.

2.Inicio de mongo db brew services ejecutar mongodb-community

3.Escriba mongod o mongod --dbpath / System / Volumes / Data / data / db

4.Y si el mongod muestra un error (se apaga con el código 48) eso
significa que el puerto ya se está usando, por lo que puede hacer dos cosas

4.a O cambia el puerto de mongod especificando el
número de puerto mongod --dbpath / System / Volumes / Data / data / db —port 27018.

4.b O puede matar el proceso en ese puerto buscando el proceso con sudo lsof -i: 27017 y luego matar con el comando
kill -9

5.Repita los pasos 2 y 3.

Dishu bagga
fuente
1

Para los usuarios de macOS, ocúpese del siguiente problema:

si instala MongoDB Community en macOS usando .tgz Tarball

(( A partir de macOS 10.15 Catalina, Apple restringe el acceso al directorio de datos predeterminado de MongoDB de / data / db. En macOS 10.15 Catalina, debe usar un directorio de datos diferente, como / usr / local / var / mongodb. ))

puedes resolverlo de la siguiente manera:

(MacOS Catalina en adelante)

Apple creó un nuevo volumen en Catalina por motivos de seguridad. Si está en Catalina, necesita crear la carpeta / data / db en System / Volumes / Data.

Utilice este comando:

sudo mkdir -p /System/Volumes/Data/data/db

Luego, use este comando para otorgar permisos:

sudo chown -R `id -un` /System/Volumes/Data/data/db

esto reemplazará normal

sudo mkdir -p /data/db

Asegúrese de que el directorio / data / db tenga los permisos correctos ejecutando:

sudo chown -R `id -un` /data/db

una vez que termine e inicie mongoDB, puede usar lo siguiente en la terminal:

sudo mongod --dbpath /System/Volumes/Data/data/db
ahmedSanad
fuente
0

En MacOS : -

Si olvidó dar la ruta de la base de datos creada anteriormente mientras ejecutaba el servidor mongo, aparecerá el error anterior.

sudo ./mongod --dbpath ../../mongo-data/

Referencia

Nota: - ./mongod && ../../mongo-data es una ruta relativa. Entonces puede evitarlo configurando en la variable de entorno

Referencia

Shrawan
fuente
0

Para Windows tengo el mismo problema.

La solución fue: necesito ejecutar la línea de comandos como administrador.

Tomás J
fuente
1
Sugeriría reformular la respuesta a algo como esto: "Si tiene este problema en Windows, asegúrese de que está ejecutando la línea de comandos como administrador".
Filnor
0

si ya tiene el directorio, verifique los permisos del directorio o intente reiniciar mongo con sudo. sudo brew services start mongodb

rabie jegham
fuente
0

En mi caso, obtuve un error similar y sucedía porque había ejecutado mongod con el usuario root y eso había creado un archivo de registro al que solo puede acceder el root. Podría solucionar esto cambiando la propiedad de root al usuario desde el que normalmente ejecuta mongod. El archivo de registro estaba en / var / lib / mongodb / journal /

Sanchit Garg
fuente
0

Si estás usando Virtualbox, revisa tu VM.

docker-machine ssh

df -h

Mire dev / sda1 si no tiene espacio libre, esto puede deberse a una gran cantidad de imágenes o contenedores. puede eliminarlos usando "docker rm" y "docker rmi"

Aaron Tesch
fuente
0

Este código de salida también se proporcionará si está cambiando las versiones de MongoDB y el directorio de datos es incompatible, como con una degradación. Mueva el directorio antiguo a otro lugar y cree un nuevo directorio (según las instrucciones dadas en otras respuestas).

Pistos
fuente
0

Aravind.

También sucedió conmigo porque detuve MongoDB por el Administrador de tareas.

Crear la carpeta C: \ data \ db e iniciar MongoDB en C: \ Archivos de programa \ MongoDB \ Server \ 3.4 \ bin \ mongod.exe funcionó para mí, como sugirió cespon, pero MongoDB no mostró ninguna de mis bases de datos creado previamente.

Luego, quitando la carpeta C: \ data \ db y reparando la instalación con el instalador de MongoDB , recuperé mis datos e inicié normalmente MongoDB.

(Soy muy nuevo con MongoDB, pero me ayudó a resolver este problema y recuperar algunos datos de vista previa).

Amon Bernardo
fuente
0

escribió mongod y obteniendo un error

Errores:

excepción en initAndListen: NonExistentPath: directorio de datos / datos / db no encontrado., terminando

se apaga con Code 100

Luego intente con (crear datos y carpeta db con todos los permisos)

mongod --dbpath = / datos

use la nueva pestaña y escriba mongo.

> usar dbs

Si aún tiene problemas, puede buscar mac catalina: ( https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x-tarball/ )

para Windows: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows-unattended/

Prakash Singh
fuente