Jaki jest prawidłowy sposób uruchamiania usługi mongod w systemie Linux / OS X?


136

Zainstalowałem mongodb i byłem w stanie go uruchomić, pracować z nim, robić proste rzeczy do odczytu / zapisu DB. Teraz próbuję skonfigurować Maca do uruchamiania mongod jako usługi.

Otrzymuję komunikat „Nie znaleziono polecenia” w odpowiedzi na:

 init mongod start

W odpowiedzi na:

~: service mongod start
service: This command still works, but it is deprecated. Please use launchctl(8) instead.
service: failed to start the 'mongod' service

A jeśli spróbuję:

~: launchctl start mongod
launchctl start error: No such process

Więc oczywiście trochę się gubię. Następnym krokiem wydaje się wpisywanie losowych znaków, aż coś zadziała. Komenda, która czyni pracę to: mongod --quiet &Nie jestem pewien, może to jest sposób, w jaki powinniśmy to zrobić? Może powinienem po prostu zdjąć „tryb cichy” i dodać > /logs/mongo.logna koniec wiersza poleceń?

Buduję środowisko programistyczne na komputerze Mac z zamiarem zrobienia tego samego na serwerze z systemem Linux. Po prostu nie jestem pewien poleceń Bash. Wszystkie inne wyszukiwania, które wykonuję, próbując znaleźć odpowiedź, dają mi porady dotyczące komputerów z systemem Windows.

Może ktoś zna wersję poleceń dla Linuksa?

Dziękuję bardzo


Zrobiłem na Windowsie za pomocą tego linku ( stackoverflow.com/questions/2438055/… ), nie jestem pewien, czy to samo w systemie Mac OS.
— Scott,

Dzięki Scott, nie, ja też widziałem i próbowałem rzeczy z twojego wątkuerror command line: unknown option install
— Alex C

Odpowiedzi:


129

W przypadku najnowszych wersji wydania społecznościowego mongodb jest to proste.

Po zainstalowaniu przez brew, mówi ci, co dokładnie zrobić. Nie ma potrzeby tworzenia nowego pliku kontroli uruchamiania.

$ brew install mongodb
==> Downloading https://homebrew.bintray.com/bottles/mongodb-3.0.6.yosemite.bottle.tar.gz ### 100.0%
==> Pouring mongodb-3.0.6.yosemite.bottle.tar.gz
==> Caveats
To have launchd start mongodb at login:
  ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents
Then to load mongodb now:
  launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
Or, if you don't want/need launchctl, you can just run:
  mongod --config /usr/local/etc/mongod.conf
==> Summary
🍺  /usr/local/Cellar/mongodb/3.0.6: 17 files, 159M

Czy mongodmusi wyświetlać informacje przez serwer okien; czy musi to być agent uruchamiania, czy wystarczy, aby był demonem uruchamiania ?
— Marius Butuc,

23
Uwaga do użytkowników OSX: zainstalowałem mongo przez homebrew i zawierało /usr/local/Cellar/mongodb/2.4.5-x86_64/homebrew.mxcl.mongodb.plist(i zostało poprawnie skonfigurowane do mojej instalacji). Po prostu kopiowane homebrew.mxcl.mongodb.plistdo LaunchAgents a następnie resztę tych instrukcji (podstawiając homebrew.mxcl.mongodbza org.mongodb.mongod) i działa świetnie.
— Jakub

5
Lepiej przewiń w dół, aby znaleźć odpowiedź Mario Alemi;)
— oktawski

/Library/LaunchAgents/homebrew.mxcl.mongodb.plist: Brak takiego pliku lub katalogu
— user269867

Po pierwsze: MongoDB ma swój własny, oficjalny Homebrew Tap, którego powinieneś użyć do zainstalowania edycji społecznościowej. $ brew tap mongodb/brewnastępnie zainstaluj za pomocą $ brew install mongodb-community. Jeśli chodzi o usługi, jeśli korzystasz z $ brew services Homebrew, teraz zawiera to Tap, więc nie musisz nic robić. Co więcej, jeśli chodzi o usługi startowe, jeśli potrzebujesz MongoDB po zalogowaniu (jako serwer deweloperski, a nie serwer produkcyjny), użyj ~/Library/LaunchAgents/katalogu, a nie systemu, /Library/LaunchDeamonsktóry wymaga uprawnień roota.
— cseder

152

Edycja: powinieneś teraz użyć brew services start mongodb, jak w odpowiedzi Gergo ...

Kiedy zainstalujesz / zaktualizujesz mongodb, brew powie Ci, co zrobić:

Aby launchd uruchomił mongodb podczas logowania:

    ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents

Następnie, aby załadować mongodb teraz:

    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist

Lub, jeśli nie chcesz / nie potrzebujesz launchctl, możesz po prostu uruchomić:

    mongod

Działa doskonale.


Nie widziałem tej instrukcji! To działa idealnie dla mnie na Mac OSX 10.8.4, myślę, że zainstalowałem go z Brew. Komentarz Jacoba w zaakceptowanej odpowiedzi wskazywał na nieznany plik, kiedy go wypróbowałem.
— Matt Fletcher

5
Wolę to rozwiązanie od zaakceptowanej odpowiedzi. Skopiowanie plist z powyższej odpowiedzi może trochę utrudnić aktualizację mongo; musisz pamiętać o aktualizacji ścieżek w razie potrzeby. Korzystanie z linku symbolicznego zgodnie z zaleceniami homebrew załatwia to za Ciebie. Użyłem tego podejścia i aliasów z odpowiedzi powyżej (zastępując org.mongodb.mongod słowem homebrew.mxcl.mongodb) i wszystko działa świetnie
— verboze

2
Wypróbowałem to rozwiązanie i baza danych, z której korzystałem, "zniknęła"! Myślę, że jest to powód: domyślny plist dostarczony przez homebrew przechowuje konfigurację mongod w /usr/local/etc/mongod.conf. Ta konfiguracja określa ścieżkę dbpath jako / usr / local / var / mongodb zamiast domyślnej / data / db. Chciałem tylko zauważyć, że przydarzy się to komuś innemu. Aby moja baza danych pojawiła się ponownie, musiałem zwolnić i usunąć dowiązanie symboliczne.
— ttemple

1
Uwaga: w launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plistśrodku jest trochę dziwnościtmux
— kqw

@ttemple jakiś pomysł, jak to wszystko cofnąć?
— Timeless

73

servicesTap Homebrew integruje formuły z launchctlmenedżerem. Dodanie jest łatwe:

brew tap homebrew/services

Następnie możesz uruchomić MongoDB za pomocą tego polecenia (spowoduje to również uruchomienie mongodb podczas rozruchu):

brew services start mongodb

Możesz także użyć stoplub restart:

brew services stop mongodb
brew services restart mongodb

4
Podobała mi się odpowiedź, ale stwierdziłem, że napar usunie usługi w przyszłości. usługi warzenia piwa start mongodb Ostrzeżenie: usługi parzenia nie są obsługiwane i zostaną wkrótce usunięte.
— smile2day,

1
To smutna wiadomość. Na razie jest to po prostu przestarzałe, co oznacza, że ​​zostanie kiedyś usunięte, ale nadal działa. Miejmy nadzieję, że ktoś zgłosi się na ochotnika do utrzymania go jako kranu. Zaktualizuję odpowiedź, gdy zostanie usunięta lub gdy będzie dostępny kran.
— Gergo Erdosi,


Został już usunięty, ponieważ widzę, Error: Unknown command: serviceskiedy próbowałem w ten sposób.
— iplus26

1
Dzięki za tę odpowiedź. @ iplus26 to nadal działa dla mnie
— philip oghenerobo balogun


3

Właśnie zainstalowałem MongoDB przez Homebrew. Na końcu konsoli instalacyjnej możesz zobaczyć następujące dane wyjściowe:

Aby uruchomić mongodb:

brew services start mongodb

Lub, jeśli nie chcesz / potrzebujesz usługi w tle, możesz po prostu uruchomić:

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

Tak więc, serwisy piwowarskie zaczęły mongodb , udało się uruchomić MongoDB jako usługę dla mnie.


2

Rozejrzałem się trochę po stronie Maca. Możesz tutaj użyć instalatora , ponieważ wygląda na to, że wykonuje całą konfigurację, aby automatycznie uruchomić się w systemie Mac OS. Jedynym minusem jest to, że wygląda na to, że używa dość starej wersji mongo.

Ten link tutaj również wyjaśnia konfigurację dostać Mongo automatycznie uruchomienia jako usługa w tle na komputerze Mac.


1
Link nie jest już dostępny.
— Hoppo

1
nie jestem pewien, czy to dokładnie to samo, ale naprawiono link do artykułu wyjaśniającego tę samą koncepcję
— Scott

0

Pierwszy krok

zainstaluj mongodb na swoim komputerze z systemem Linux z

apt install mongodb-client && apt install mongodb-server

drugi krok to

Jeśli chcesz, zmień ścieżkę bazy danych zamiast domyślnej ścieżki systemowej.
więc wykonaj poniższe czynności i zmień to samodzielnie.

mongod --directoryperdb --dbpath /var/lib/mongodb/data/db --logpath /var/lib/mongodb/log/mongodb.log --logappend --rest

a na komputerze z systemem Windows zrób to tak, jak po prostu wstaw flagę --install. musisz otrzymać pomyślną wiadomość.

Z poważaniem...


0

W systemie macOS 10.13.6 z MongoDB 4.0

Nie mogłem połączyć się z lokalnym hostem z powłoki mongo

Zacząłem MongoDB z:

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

Okazało się, że plik „mongod.conf” miał:

bindIp: 127.0.0.1

Zmień moje połączenie JavaScript z localhost na 127.0.0.1 i działało dobrze.

To samo działo się z MongoDB Compass.



0

Po zainstalowaniu mongodb przez brew, uruchom to, aby go uruchomić:

mongod --dbpath /usr/local/var/mongodb

2
To ta sama odpowiedź, której @ Rejeev-Divakaran udzielił ponad pięć lat temu. Przed przesłaniem nowej należy sprawdzić istniejące odpowiedzi. Jeśli istnieje taki, który sugeruje takie samo podejście, odpowiednim działaniem jest głosowanie za nim - przywilej, który zdobędziesz po otrzymaniu czterech dodatkowych punktów reputacji, jak sądzę.
— Jeremy Caney

0
mongod --dbpath [path_to_data_directory]

2
OP chce uruchamiać go jako usługę, a nie interaktywnie. Dobra odpowiedź powinna bezpośrednio rozwiązać ten problem.
— paulmelnikow
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.