Próbuję utworzyć nowy folder w katalogu głównym
Próbowałem różnych przykładów
sudo mkdir /data/db
sudo mkdir -p /data/db
Ciągle dostaję
mkdir: / data: system plików tylko do odczytu
Próbuję utworzyć nowy folder w katalogu głównym
Próbowałem różnych przykładów
sudo mkdir /data/db
sudo mkdir -p /data/db
Ciągle dostaję
mkdir: / data: system plików tylko do odczytu
Odpowiedzi:
Jeśli masz komputer Mac i zaktualizowano go do wersji Catalina, folder główny nie jest już zapisywalny.
Właśnie zmieniłem katalog gdzie indziej.
Używam tego polecenia na razie
mongod --dbpath=/Users/user/data/db
z oficjalnych dokumentów https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/
zainstaluj homebrew i uruchom następujące polecenia
sudo chown -R $(whoami) $(brew --prefix)/*
następnie
brew tap mongodb/brew
następnie
brew install mongodb-community@4.2
i
brew services start mongodb-community
lub
mongod --config /usr/local/etc/mongod.conf
następnie
ps aux | grep -v grep | grep mongod
i
mongo
aby sprawdzić, czy możesz uruchomić show dbs
w powłoce mongo
mongodb-community
nie jest zainstalowana. Musisz uruchomić: usługi warzenia rozpoczynają się mongodb/brew/mongodb-community@4.2
Dzięki nowej aktualizacji macOS Catalina folder /data/db
staje się tylko do odczytu i nie można go modyfikować. Postępuj zgodnie z tą procedurą, aby utworzyć bazę danych w innym folderze:
Zmień mongod
katalog:
sudo mongod --dbpath /System/Volumes/Data/data/db
Nadaj mu alias, aby używać go jako mongod
:
alias mongod="sudo mongod --dbpath /System/Volumes/Data/data/db"
Po prostu wpisz mongod
swój terminal, powinno działać.
Extra => Jeśli chcesz nadać mu aktualne uprawnienia użytkownika, użyj tej linii kodu:
sudo chown -R $(whoami) /System/Volumes/Data/data/db
(Tylko dla informacji -> $(whoami)
to tylko zmienna, która zwraca aktualnego użytkownika)
sudo mkdir -p /System/Volumes/Data/data/db
&& sudo chown -R `id -un` /System/Volumes/Data/data/db
. Nie jestem pewien, czy te foldery już istnieją, ale połączono odpowiedź @ xgqfrms z tym. Wielkie dzięki za to, doprowadzało mnie do szału.
Aby trwale zmienić ścieżkę do db
folderu mongod .
Po tych dokumentach mówią z grubsza to. Jeśli mongod jest uruchamiany z usługami parzenia:
$ brew services start mongodb-community@4.2
Będzie używał pliku konfiguracyjnego w path /usr/local/etc/mongod.conf
Aby to naprawić, edytuj plik konfiguracyjny:
$ vim /usr/local/etc/mongod.conf
I zmień dbPath
np na swój katalog domowy w ten sposób:
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
Zapisz plik i zrestartuj mongod z brew:
$ brew services restart mongodb-community@4.2
Tak więc w macOS Catalina Apple utworzył nowy wolumin ze względów bezpieczeństwa. Jeśli korzystasz z macOS Catalina, musisz utworzyć /data/db
folder w System/Volumes/Data
.
Postępuj zgodnie z tymi poleceniami
sudo mkdir -p /System/Volumes/Data/data/db
sudo chown -R
id -un /System/Volumes/Data/data/db
Uruchom MongoDB
brew services run mongodb-community
Ciesz się 😉
https://www.apple.com/macos/catalina/features/
macOS Catalina działa na dedykowanym woluminie systemowym tylko do odczytu - co oznacza, że jest całkowicie oddzielony od wszystkich innych danych i pomaga zwiększyć niezawodność systemu macOS.
# 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
https://discussions.apple.com/thread/250720711
Oto, co zadziałało w moim przypadku, gdy przechodziłem kurs Udemy: 1. Zainstaluj HomeBrew, wpisując to w swoim terminalu
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Przenieś swój stary folder / data / db (jeśli chcesz wykonać kopię zapasową bieżącej bazy danych) do folderu innego niż główny i przejdź do następnego kroku
Uruchom w Terminalu a) brew uninstall mongodb
b) W razie potrzeby uruchom brew uninstall --force mongodb
c) brew tap mongodb/brew
d) brew install mongodb-community
e)brew services start mongodb/brew/mongodb-community
Teraz wystarczy uruchomić mongo w terminalu, a zobaczysz symbol powłoki mongo>.
Daj mi znać, czy to działa;) Zajęło mi to prawie 2 godziny, na podstawie tego artykułu: /apple/362883/mongodb-doesnt-work-after-update-to -macos-catalina-10-15
Pozdrawiam, Radu
Jeśli korzystasz z komputera Mac i masz do czynienia z problemem, przydatne jest poniższe polecenie,
whoami
zmienna pobierze bieżącego użytkownika
mongod --dbpath=/Users/$(whoami)/data/db
Domyślne ścieżki dla formuły mongodb-community
Oprócz zainstalowania serwera MongoDB i plików binarnych narzędzi, formuła mongodb-community tworzy:
wtedy zadziałało dla mnie:
mkdir -p usr/local/var/mongodb/data/db
Nie możesz utworzyć /data/
katalogu. To jest zarezerwowane dla systemu plików APFS. Sprawdzić Bombich na blogu o tym problemie.
Nie wiem, dlaczego Apple to zrobił… Więc teraz nie możemy mieć innego katalogu głównego niż ich? To po prostu nie ma sensu, a osoby tworzące te foldery z uprawnieniami roota wiedzą, co robią
W systemie macOS Catalina nie można już przechowywać plików ani danych na woluminie systemowym tylko do odczytu ani zapisywać w katalogu „głównym” (/) z wiersza poleceń, na przykład w Terminalu.
Aby dodać do tego, co napisał tutaj David Buck , najpierw musisz faktycznie utworzyć katalog. Możesz to zrobić za pomocą:
sudo mkdir / System / Volumes / Data / data / db
Jeśli otrzymujesz ten błąd:
„Błąd podczas analizowania wiersza poleceń: nierozpoznana opcja '--dbpath / System / Volumes / Data / data / db' try 'mongod --help', aby uzyskać więcej informacji”
po utworzeniu aliasu to tylko dlatego, że David Buck (robiąc bardzo pomocny komentarz) przegapił spację w swojej odpowiedzi.
Aby to naprawić, wpisz
unalias mongod
a następnie wpisz
alias mongod = "sudo mongod --dbpath / System / Volumes / Data / data / db"
Wersja dla komputerów Mac Catalina sprawiła, że folder główny nie jest już zapisywalny.
Brew ma zaktualizowaną wersję mongodb do korzystania z nowej ścieżki (którą sam tworzy), /usr/local/var/mongodb
a wykonanie tych instrukcji rozwiąże problem:
Przewodnik po instalacji zaktualizowanej wersji mongodb-community-edition
brew install mongodb-community@VERSION
gdzie pierwsza WERSJA z poprawką to 4.2
Tworzę streszczenie w prostych krokach, aby zainstalować i uruchomić mongodb na Catalinie
# 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