Mac'te mkdir / data / db denendiğinde salt okunur dosya sistemi


Yanıtlar:


142

Mac'iniz varsa ve Catalina'ya güncellediyseniz, kök klasör artık yazılabilir değildir.

Dizini başka bir yerde değiştirdim.

Şimdilik bu komutu kullanıyorum

mongod --dbpath=/Users/user/data/db

4
Kalıcı hale getirmenin bir yolu var mı? MongoDB sunucusunu her başlattığımda yazmam gerekiyor!
AV Paul

2
@AVPaul Belki en iyi çözüm değildir, ancak yolunuza atıfta bulunan bir takma ad oluşturabilirsiniz.
DjangoBlockchain

1
@JeffGoes Kullanıcıyı gerçek adla değiştirmediğinizi varsayıyorum.
Aman

2
@AlexL Benim için de çalışıyor. Ancak, dev mongo db'mi her çalıştırmak istediğimde mongod --dbpath = / Kullanıcılar / my_USER_name / data / db yazmam gerekir mi? Çünkü bir dahaki sefere mongod'u çalıştırdığımda, / data / db bulunamadı
diyor

3
mac kullanıyorsanız, /usr/local/etc/mongod.conf altında dbPath'i mongoDB yapılandırma dosyasında ayarlayarak kalıcı hale getirebilirsiniz. ardından şunu ekleyin: "storage: dbPath: db dizininizin yolu"
Samoox

76

resmi belgelerden https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/

homebrew kurun ve aşağıdaki komutları çalıştırın

sudo chown -R $(whoami) $(brew --prefix)/*

sonra

brew tap mongodb/brew

sonra

brew install mongodb-community@4.2

ve

brew services start mongodb-community

veya

mongod --config /usr/local/etc/mongod.conf

sonra

ps aux | grep -v grep | grep mongod

ve

mongo

show dbsmongo kabuğunda koşabileceğinizi doğrulamak için


16

Yeni macOS Catalina güncellemesiyle, klasör /data/dbsalt okunur hale gelir, onu değiştiremezsiniz. Başka bir klasörde bir DB oluşturmak için bu prosedürü izleyin:

  1. mongodDizini değiştir :

    sudo mongod --dbpath /System/Volumes/Data/data/db

  2. Olarak kullanmak için bir takma ad verin mongod:

    alias mongod="sudo mongod --dbpath /System/Volumes/Data/data/db"

  3. Sadece mongodterminalinizi yazın, çalışmalıdır.

Ekstra => Mevcut kullanıcı haklarını vermeniz gerekiyorsa, bu kod satırını kullanın:

sudo chown -R $(whoami) /System/Volumes/Data/data/db

(Sadece bilgi için -> $(whoami)sadece mevcut kullanıcınızı döndüren bir değişkendir)


11

Mongod dbklasörünün yolunda kalıcı bir değişiklik yapmak için .

Bu belgelerin ardından kabaca şunu söylüyorlar. Mongod, demleme hizmetleri ile başlatılırsa:

$ brew services start mongodb-community@4.2

Yolda yapılandırma dosyasını kullanacak /usr/local/etc/mongod.conf


Bunu düzeltmek için yapılandırma dosyasını düzenleyin:

$ vim /usr/local/etc/mongod.conf

Ve dbPathörneğin ana dizininize şu şekilde değiştirin:

systemLog:
  destination: file
  path: /usr/local/var/log/mongodb/mongo.log
  logAppend: true
storage:
  dbPath: /Users/<username>/data/db
net:
  bindIp: 127.0.0.1 

Dosyayı kaydedin ve mongod'u brew ile yeniden başlatın:

$ brew services restart mongodb-community@4.2

1
bu benim için işe yaramadı, mongo hala / data /
db'ye bakıyor

@Xen_mar dosyayı düzenledikten sonra mongod'u çalıştırmaya mı çalışıyordunuz? Görünüşe göre mongod, bira hizmetleri başlangıcı tarafından zaten yönetiliyor
JEC

3

Bir Udemy kursuna giderken benim için işe yarayan şey buydu: 1. Bunu terminalinize yazarak HomeBrew'u yükleyin

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  1. Eski / data / db klasörünüzü (mevcut dbs'nizi yedeklemek istiyorsanız) kök olmayan bir klasöre taşıyın ve bir sonraki adıma geçin

  2. Terminalde çalıştırın a) brew uninstall mongodb b) Gerekirse çalıştırın brew uninstall --force mongodb c) brew tap mongodb/brew d) brew install mongodb-community e)brew services start mongodb/brew/mongodb-community

  3. Şimdi ihtiyacınız olan tek şey, Terminal'de mongo çalıştırmak ve mongo kabuk sembolünü> göreceksiniz.

Lütfen bunun işe yarayıp yaramadığını bana bildirin;) Bu makaleye dayanarak anlamam neredeyse 2 saatimi aldı: /apple/362883/mongodb-doesnt-work-after-update-to -makos-katalina-10-15

Şerefe, Radu


3

Mac kullanıyorsanız ve sorunla karşı karşıyaysanız, aşağıdaki komut kullanışlıdır, whoamideğişken mevcut kullanıcıyı alır

mongod --dbpath=/Users/$(whoami)/data/db

3

Dolayısıyla, macOS Catalina ile Apple, güvenlik amacıyla yeni bir Birim oluşturdu. MacOS Catalina kullanıyorsanız, /data/dbklasörü içinde oluşturmanız gerekir System/Volumes/Data.

Bu komutları izleyin

  1. sudo mkdir -p /System/Volumes/Data/data/db
  2. sudo chown -R id -un /System/Volumes/Data/data/db

MongoDB'yi başlatın

  1. brew services run mongodb-community

  2. Keyfini çıkarın 😉


3

Mongodb topluluğu Formülü için Varsayılan Yollar

MongoDB sunucusunu ve araç ikili dosyalarını kurmanın yanı sıra, mongodb topluluğu formülü şunları yaratır:

  • bir yapılandırma dosyası: /usr/local/etc/mongod.conf
  • bir günlük dizini yolu: / usr / local / var / log / mongodb
  • bir veri dizini yolu: / usr / local / var / mongodb

sonra benim için çalıştı:

mkdir -p usr/local/var/mongodb/data/db

2

Artık Mac Catalina'da kök dizinde klasör oluşturamazsınız!

https://www.apple.com/macos/catalina/features/

Özel sistem hacmi

macOS Catalina, ayrılmış, salt okunur bir sistem biriminde çalışır; bu, diğer tüm verilerden tamamen ayrı olduğu ve macOS'in güvenilirliğini artırmaya yardımcı olduğu anlamına gelir.

# macOS Catalina, mkdir path
$ sudo mkdir -p /System/Volumes/Data/data/db

# give permissions
$ sudo chown -R `id -un` /System/Volumes/Data/data/db

# macOS 10.14.x -
$ sudo mkdir -p /data/db

# macOS 10.15.x +
$ sudo mkdir -p /System/Volumes/Data/data/db

referanslar

https://discussions.apple.com/thread/250720711

https://zellwk.com/blog/install-mongodb/

https://www.youtube.com/watch?v=DX15WbKidXY



1

MacOS Catalina ile artık dosyaları veya verileri salt okunur sistem biriminde depolayamaz ve Terminal gibi komut satırından "kök" dizine (/) yazamazsınız.


1

Bir /data/dizin oluşturamazsınız . Bu, APFS dosya sistemi için ayrılmıştır. Kontrol Bombich en bu konuda blog.


Peki, bu salt okunur dosya sorunu çözülebilir mi? Bende de aynı sorun var
Zainab Hammami

2
Hayır, dizininiz için başka bir isim kullanmanız gerekiyor. Olası bir çözüm, veri dizinini kök dizin olarak izin verilen başka bir dizinin içinde oluşturmak olabilir.
jvarela

1

Bunu ben yaptım:

mkdir -p usr/local/var/mongodb/data/db

yeni yol "usr / local / var / mongodb" olduğundan beri.


1

Apple'ın bunu neden yaptığını kaybettim .. Peki şimdi onlarınki dışında herhangi bir kök seviyesinde dizinimiz olamaz mı? Bu hiçbir anlam ifade etmiyor ve bu klasörleri kök ayrıcalıklarıyla oluşturan insanlar ne yaptıklarını biliyor


0

Mac sürümü Catalina, kök klasörün artık yazılabilir olmamasını sağladı.

Brew, yeni bir yolu (kendi oluşturduğu) kullanmak için güncellenmiş bir mongodb sürümüne sahiptir /usr/local/var/mongodbve bu talimatları takip etmek sorunu çözecektir:

Güncellenmiş mongodb topluluğu sürümünü yükleme kılavuzu

brew install mongodb-community@VERSION düzeltmeye sahip ilk SÜRÜM 4.2'dir


0

Mongodb'u catalina'ya kurmak ve çalıştırmak için basit adımlarla bir öz oluşturuyorum

# install homebrew (https://brew.sh/) and run the following commands
sudo chown -R $(whoami) $(brew --prefix)/*
brew tap mongodb/brew
brew install mongodb-community@4.2

## --- aliases to set in your zshrc file

# open your zshrc file
open ~/.zshrc
# copy and paste shorcuts in the end of the file
alias mongod='brew services run mongodb-community'
alias mongod-start='brew services start mongodb-community' #will start MongoDB automatically when you login into your Macbook
alias mongod-status='brew services list'
alias mongod-stop='brew services stop mongodb-community'

# restart your terminal
# type mongod in your terminal for run service & mongod-stop for finish it
# test your mongodb connection with
mongo
show dbs

https://gist.github.com/sturmenta/cf19baa91b1d79d8ae2b305fb7e1f799


0

David Buck'ın burada yazdıklarına eklemek için , önce dizini gerçekten yapmanız gerekir. Bunu şununla yapabilirsiniz:

sudo mkdir / Sistem / Birimler / Veri / veri / db

Bu hatayı alıyorsanız:

"Komut satırı ayrıştırılırken hata oluştu: tanınmayan seçenek '--dbpath / System / Volumes / Data / data / db' try 'mongod --help' for more information"

takma adı oluşturduktan sonra, bunun nedeni David Buck (gerçekten yararlı bir yorum yaparken) yanıtında bir boşluk bırakmış olmasıdır.

Bunu düzeltmek için yazın

unalias mongod

ve sonra yazın

alias mongod = "sudo mongod --dbpath / System / Volumes / Data / data / db"


Ben değildim ... kredi Eugène Beliaev'e gitmeli. Biçimlendirme için yanıtlarını yeni düzenledim ...
David Buck
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.