mongodb no funciona en el último Mac OS(10.15)
macos (3)
Si recibe un error al intentar mover toda la carpeta de datos. !!
Simplemente mueva la carpeta db, esa es la importante.
Esta pregunta ya tiene una respuesta aquí:
- Mongod se queja de que no hay / data / db carpeta 19 respuestas
Actualicé a Mac 10.15 hoy.
Cuando ejecuto
mongod
la terminal:
➜ /Users/william > mongod
2019-10-08T17:02:44.183+0800 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols ''none''
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] MongoDB starting : pid=43162 port=27017 dbpath=/data/db 64-bit host=Williams-MacBook-Pro-6.local
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] db version v4.0.3
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] git version: 7ea530946fa7880364d88c8d8b6026bbc9ffa48c
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] allocator: system
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] modules: none
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] build environment:
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] distarch: x86_64
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] target_arch: x86_64
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] options: {}
2019-10-08T17:02:44.211+0800 I STORAGE [initandlisten] exception in initAndListen: NonExistentPath: Data directory /data/db not found., terminating
2019-10-08T17:02:44.211+0800 I NETWORK [initandlisten] shutdown: going to close listening sockets...
2019-10-08T17:02:44.211+0800 I NETWORK [initandlisten] removing socket file: /tmp/mongodb-27017.sock
2019-10-08T17:02:44.211+0800 I CONTROL [initandlisten] now exiting
2019-10-08T17:02:44.211+0800 I CONTROL [initandlisten] shutting down with code:100
➜ /Users/william >
Intenté instalarlo nuevamente
brew install mongodb
➜ /Users/william > brew install mongodb
Updating Homebrew...
Error: mongodb: unknown version :mountain_lion
¿Alguna ayuda?
Después de instalar Catalina, es posible que tenga una carpeta en su escritorio llamada
Relocated Items
.
Puede encontrar la carpeta
data/db
dentro de la carpeta
Security
.
Todo lo que tenía que hacer era mover el
Security/data/db
, específicamente
data/db
y colocarlo dentro de mi carpeta de inicio.
Puede hacer esto con la aplicación Finder o con el terminal ejecutando el siguiente comando:
sudo mv /Users/Shared/Relocated/ Items/Security/data ~/
Después de esa ejecución:
mongod --dbpath ~/data/db
Depende de usted crear el alias antes
Este es el error principal:
excepción en initAndListen: NonExistentPath: directorio de datos / data / db no encontrado., terminando
Catalina tiene un cambio sorprendente: 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 dedicado de solo lectura
Dado que el directorio
/data/db
está codificado como predeterminado de MongoDB, una solución alternativa es especificar un
dbpath
diferente que no se encuentre 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 exista.
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 registro (/ 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 ser alias por conveniencia):
mongod --config /usr/local/etc/mongod.conf
-
Ejecute MongoDB como un servicio utilizando
brew services
. Tenga en cuenta que esto ejecutará MongoDB como un nodo independiente (no un conjunto de réplicas), por lo que las características que dependen del oplog, por ejemplo, changestreams no funcionarán a menos que modifique el archivo de configuraciónmongod
:brew services start mongodb-community