sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB no puede encontrar el directorio de datos después de actualizar a Mac OS 10.15 (Catalina)

Este es el error principal:

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

Catalina tiene un cambio sorpresa:no permitirá cambios en el directorio raíz (esto también se discutió en un hilo del foro):

% sudo mkdir -p /data/db
mkdir: /data/db: Read-only file system

Desafortunadamente, esto no se explica explícitamente en las notas de lanzamiento de Catalina de Apple, aparte de una breve mención en las características de Catalina:

macOS Catalina se ejecuta en un volumen de sistema exclusivo de solo lectura

Desde el directorio /data/db está codificado como valor predeterminado de MongoDB, una solución consiste en especificar un dbpath diferente que no se encuentra en el directorio raíz. Por ejemplo:

mongod --dbpath ~/data/db

Esto colocará los datos de MongoDB en su directorio de inicio. Solo asegúrese de que la ruta ~/data/db realmente existe.

Método alternativo

Un método alternativo es seguir las instrucciones en Instalar MongoDB Community Edition en macOS aprovechando brew :

brew tap mongodb/brew
brew install mongodb-community

Esto creará algunos archivos adicionales por defecto:

  • el archivo de configuración (/usr/local/etc/mongod.conf)
  • la ruta del directorio de registros (/usr/local/var/log/mongodb)
  • la ruta del directorio de datos (/usr/local/var/mongodb)

Para ejecutar mongod puedes:

  • Ejecute el comando manualmente desde la línea de comando (esto puede tener un alias para mayor comodidad):

    mongod --config /usr/local/etc/mongod.conf
    
  • Ejecute MongoDB como un servicio usando brew services . Tenga en cuenta que esto ejecutará MongoDB como un nodo independiente (no como un conjunto de réplicas), por lo que las características que dependen del registro de operaciones, p. changestreams no funcionará a menos que modifique el mongod archivo de configuración:

    brew services start mongodb-community