sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB kan inte hitta datakatalogen efter uppgradering till Mac OS 10.15 (Catalina)

Detta är huvudfelet:

undantag i initAndListen:NonExistentPath:Datakatalogen /data/db hittades inte., avslutas

Catalina har en överraskande förändring:den tillåter inte ändringar av rotkatalogen (detta diskuterades också i en forumtråd):

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

Tyvärr stavas detta inte uttryckligen i Apples utgåvan av Catalina, annat än ett kort omnämnande i Catalinas funktioner:

macOS Catalina körs i en dedikerad, skrivskyddad systemvolym

Eftersom katalogen /data/db är kodad som MongoDB standard, är en lösning att ange en annan dbpath som inte finns i rotkatalogen. Till exempel:

mongod --dbpath ~/data/db

Detta kommer att placera MongoDBs data i din hemkatalog. Se bara till att sökvägen ~/data/db faktiskt existerar.

Alternativ metod

En alternativ metod är att följa instruktionerna på Install MongoDB Community Edition på macOS genom att använda brew :

brew tap mongodb/brew
brew install mongodb-community

Detta kommer att skapa några ytterligare filer som standard:

  • konfigurationsfilen (/usr/local/etc/mongod.conf)
  • loggkatalogens sökväg (/usr/local/var/log/mongodb)
  • datakatalogsökvägen (/usr/local/var/mongodb)

För att köra mongod du kan antingen:

  • Kör kommandot manuellt från kommandoraden (detta kan alias för enkelhetens skull):

    mongod --config /usr/local/etc/mongod.conf
    
  • Kör MongoDB som en tjänst med brew services . Observera att detta kommer att köra MongoDB som en fristående nod (inte en replikuppsättning), så funktioner som beror på oploggen t.ex. changestreams kommer inte att fungera om du inte ändrar mongod konfigurationsfil:

    brew services start mongodb-community
    


  1. Rails anpassad miljö Resque.enqueue skapar inga jobb

  2. Deserialisering av polymorfa typer med MongoDB C#-drivrutin

  3. Mongodb kan inte starta

  4. Rescue Timeout::Fel från Redis Gem (Ruby)