Czy istnieje sposób, aby to było trwałe? Muszę to wpisywać za każdym razem, gdy uruchamiam serwer MongoDB!
AV Paul
2
@AVPaul Może nie jest to najlepsze rozwiązanie, ale możesz stworzyć alias odnoszący się do Twojej ścieżki.
DjangoBlockchain,
1
@JeffGoes Zakładam, że nie zastąpiłeś użytkownika rzeczywistą nazwą.
Aman
2
@AlexL U mnie też to działa. Ale czy muszę wpisywać mongod --dbpath = / Users / my_USER_name / data / db za każdym razem, gdy chcę uruchomić moją dev mongo db? Ponieważ następnym razem, gdy uruchomię mongod, mówi / data / db not found
Shoeb Mirza
3
możesz uczynić to stałym, ustawiając dbPath w pliku konfiguracyjnym mongoDB, jeśli używasz Maca, znajduje się on w /usr/local/etc/mongod.conf. następnie dodaj następujący tekst: „storage: dbPath: ścieżka do katalogu db”
brew services start mongodb-community => Błąd: Formuła mongodb-communitynie jest zainstalowana. Musisz uruchomić: usługi warzenia rozpoczynają się mongodb/brew/[email protected]
Andresse Njeungoue
20
Dzięki nowej aktualizacji macOS Catalina folder /data/dbstaje się tylko do odczytu i nie można go modyfikować. Postępuj zgodnie z tą procedurą, aby utworzyć bazę danych w innym folderze:
Zmień mongodkatalog:
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 mongodswój terminal, powinno działać.
Extra => Jeśli chcesz nadać mu aktualne uprawnienia użytkownika, użyj tej linii kodu:
Zrobiłem to przed krokiem 1: 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.
twknab
11
Aby trwale zmienić ścieżkę do dbfolderu 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ń dbPathnp na swój katalog domowy w ten sposób:
to nie zadziałało dla mnie, mongo wciąż szuka w / data / db
Xen_mar
@Xen_mar czy próbowałeś uruchomić mongod po edycji pliku? Podobno mongod jest już prowadzony przez browary startujące
JEC
5
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/dbfolder w System/Volumes/Data.
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.
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>.
Czy można więc rozwiązać ten problem z plikiem tylko do odczytu? Mam ten sam problem
Zainab Hammami
2
Nie, musisz użyć innej nazwy dla swojego katalogu. Możliwym rozwiązaniem mogłoby być utworzenie katalogu danych w innym katalogu, który jest dozwolony jako katalog główny.
jvarela
2
Ja to zrobiłem:
mkdir -p usr/local/var/mongodb/data/db
ponieważ nowa ścieżka to „usr / local / var / mongodb”.
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"
To nie ja ... zasługa Eugène Beliaev. Właśnie zredagowałem ich odpowiedź dotyczącą formatowania ...
David Buck,
0
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/mongodba wykonanie tych instrukcji rozwiąże problem:
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 [email protected]
## --- 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
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
źródło
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 [email protected]
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źródło
mongodb-community
nie jest zainstalowana. Musisz uruchomić: usługi warzenia rozpoczynają się mongodb/brew/[email protected]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)źródło
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:
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
źródło
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 wSystem/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ę 😉
źródło
Nie możesz już utworzyć folderu w katalogu głównym na komputerze Mac Catalina!
https://www.apple.com/macos/catalina/features/
Dedykowany wolumin systemowy
# 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
refs
https://discussions.apple.com/thread/250720711
https://zellwk.com/blog/install-mongodb/
https://www.youtube.com/watch?v=DX15WbKidXY
źródło
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 uruchombrew 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
źródło
Jeśli korzystasz z komputera Mac i masz do czynienia z problemem, przydatne jest poniższe polecenie,
whoami
zmienna pobierze bieżącego użytkownikamongod --dbpath=/Users/$(whoami)/data/db
źródło
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
źródło
Nie możesz utworzyć
/data/
katalogu. To jest zarezerwowane dla systemu plików APFS. Sprawdzić Bombich na blogu o tym problemie.źródło
Ja to zrobiłem:
mkdir -p usr/local/var/mongodb/data/db
ponieważ nowa ścieżka to „usr / local / var / mongodb”.
źródło
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ą
źródło
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.
źródło
Aby dodać do tego, co napisał tutaj David Buck , najpierw musisz faktycznie utworzyć katalog. Możesz to zrobić za pomocą:
Jeśli otrzymujesz ten błąd:
po utworzeniu aliasu to tylko dlatego, że David Buck (robiąc bardzo pomocny komentarz) przegapił spację w swojej odpowiedzi.
Aby to naprawić, wpisz
a następnie wpisz
źródło
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źródło
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 [email protected] ## --- 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
źródło