MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB ne trouve pas le répertoire de données après la mise à niveau vers Mac OS 10.15 (Catalina)

C'est l'erreur principale :

exception dans initAndListen :NonExistentPath :répertoire de données /data/db introuvable., fin

Catalina a un changement surprise :il n'autorisera pas les modifications du répertoire racine (cela a également été discuté dans un fil de discussion du forum) :

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

Malheureusement, cela n'est pas énoncé explicitement dans les notes de publication d'Apple sur Catalina, à part une brève mention dans les fonctionnalités de Catalina :

macOS Catalina s'exécute dans un volume système dédié en lecture seule

Depuis le répertoire /data/db est codé comme MongoDB par défaut, une solution consiste à spécifier un autre dbpath qui ne se trouve pas dans le répertoire racine. Par exemple :

mongod --dbpath ~/data/db

Cela placera les données de MongoDB dans votre répertoire personnel. Assurez-vous simplement que le chemin ~/data/db existe réellement.

Méthode alternative

Une autre méthode consiste à suivre les instructions de Installer MongoDB Community Edition sur macOS en utilisant brew :

brew tap mongodb/brew
brew install mongodb-community

Cela créera des fichiers supplémentaires par défaut :

  • le fichier de configuration (/usr/local/etc/mongod.conf)
  • le chemin du répertoire du journal (/usr/local/var/log/mongodb)
  • le chemin du répertoire de données (/usr/local/var/mongodb)

Pour exécuter mongod vous pouvez soit :

  • Exécutez la commande manuellement à partir de la ligne de commande (cela peut être un alias pour plus de commodité) :

    mongod --config /usr/local/etc/mongod.conf
    
  • Exécutez MongoDB en tant que service à l'aide de brew services . Notez que cela exécutera MongoDB en tant que nœud autonome (pas un jeu de répliques), donc les fonctionnalités qui dépendent de l'oplog, par exemple. changestreams ne fonctionnera que si vous modifiez le mongod fichier de configuration :

    brew services start mongodb-community