50% zniżki wszystkie plany, oferta czasowa. Od $2.48/mo
12 min pozostało
Bazy danych i analityka

Jak zainstalować MongoDB na trzech najnowszych wersjach Ubuntu (krok po kroku)

Jim Schwarz By Jim Schwarz 12 minut czytania
Oryginalny symbol MongoDB na tle futurystycznego serwera do instalacji MongoDB na Ubuntu + tagline o zawartości artykułu + tytuł artykułu + logo marki Cloudzy

Postanowiłeś użyć MongoDB, świetny alternative to MariaDB do budowania aplikacji MERN stack, platformy analitycznej czy dowolnego systemu opartego na dokumentach, ale natknąłeś się na problemy ze starymi Linux command lines i niezliczonymi błędami terminala. 

Nie ma się czym martwić - ten przewodnik zawiera wszystko, co musisz wiedzieć, aby zainstalować MongoDB na Ubuntu.

MongoDB używa X.Y.Z wersjonowanie. 8.0 jest główny serii wydań oraz 8.2 jest mniejszy wydanie w ramach tego cyklu 8.0. Wydania dodatkowe wprowadzają nowe funkcje w obrębie tego samego cyklu głównego i, począwszy od wersji 8.0, są również dostępne dla instalacji on-prem w określonych przypadkach użycia (na przykład Search i Vector Search). MongoDB 8.0 na Ubuntu obsługuje 24.04 (Noble), 22.04 (Jammy) oraz 20.04 (Focal) na systemach 64-bitowych, z obsługą ARM64 na wybranych platformach.

Wymagania wstępne: GnuPG i Curl

Przed zainstalowaniem oficjalnego mongodb-org pakiet Ubuntu wymaga dwóch warunków wstępnych: GnuPG i Curl. Te narzędzia dają Ubuntu uprawnienie do pobrania MongoDB, ponieważ Ubuntu ma własne mongodb pakiet nie jest utrzymywany przez MongoDB Inc. i konfliktuje z oficjalnym mongodb-org pakietu. Jeśli został już zainstalowany mongodb pamiętaj, aby go odinstalować.

Teraz uruchom polecenie sudo apt-get install gnupg curl. Curl to narzędzie do pobierania plików z internetu, potrzebne do uzyskania klucza bezpieczeństwa MongoDB. GnuPG służy do weryfikacji autentyczności oprogramowania przez Ubuntu. Jeśli GnuPG jest niedostępny, Ubuntu nie może zweryfikować pakietów MongoDB.

Upewnij się, że w terminalu pomyślnie zainstalowałeś GnuPG i Curl. Jeśli tak, powinno to wyglądać tak:Wyjście terminala Ubuntu po dodaniu GnuPG i Curl

Importowanie klucza GPG MongoDB

Menedżer pakietów APT w Ubuntu używa kluczy GPG do weryfikacji pakietów przed instalacją. Bez tego klucza GPG Ubuntu nie zezwala na dodanie repozytoriów MongoDB. Wpisz poniższe polecenie w terminalu, aby dodać klucz:

curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
   sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
   --dearmor

Jeśli się powiedzie, wynik w terminalu powinien wyglądać tak:Terminal Ubuntu po pomyślnym dodaniu klucza GPG MongoDB.

Mówiąc prosto, to polecenie pobiera podpis bezpieczeństwa MongoDB, konwertuje go na format, który rozumie Ubuntu, i zapisuje w bezpiecznym folderze systemowym. Oto rozpisanie polecenia część po części:

  1. curl -fsSL URL pobiera oficjalny klucz MongoDB
  2. –dearmor konwertuje klucz z formatu tekstowego na binarny, który rozumie Ubuntu
  3. -o /usr/share/keyrings/mongodb-server-8.0.gpg zapisuje plik binarny do folderu, gdzie Ubuntu przechowuje zaufane klucze

Jeśli dokładnie położy każde polecenie, publiczny klucz GPG zostanie dodany bez problemów. Jednak niektórzy użytkownicy napotykają problemy przy pobieraniu MongoDB z powodu niezgodności klucza GPG. Błędy takie jak:

NO_PUBKEY
The following signatures couldn't be verified
public key not available

Pojawiają się, gdy nie stosujesz się dokładnie do poleceń klucza GPG z wcześniejszej sekcji i zamiast tego używasz sudo apt-key ponieważ nowoczesny Ubuntu tego nie zaleca.

Dodawanie repozytorium MongoDB

Dodanie repozytorium MongoDB tworzy plik, który informuje Ubuntu, że pakiety MongoDB są dostępne pod określonym adresem internetowym. Utwórz plik listy w /etc/apt/sources.list.d/mongodb-org-8.0.list wpisując linię repozytorium za pomocą echo … | sudo tee …

Tu właśnie robi się trudniej, bo różne wersje Ubuntu wymagają innej odmiany tego polecenia. Sprawdzimy teraz, jak zaimportować plik listy w trzech wersjach Ubuntu wymienionych wcześniej.

Ubuntu 24.04 (Noble)

Aby utworzyć plik listy na Ubuntu 24.04, po prostu wpisz echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list w Twoim terminalu.

To może wyglądać mylące, ale nie przejmuj się. Gdy rozłożymy to polecenie na części, wszystko stanie się jasne.

  1. echo drukuje tekst
  2. /etc/apt/sources.list.d to folder, w którym Ubuntu przechowuje definicje źródeł oprogramowania. Każdy plik z .list format wewnątrz folderu wskazuje Ubuntu na konkretną lokalizację, z której pobierać oprogramowanie
  3. Normalnie, jako zwykły użytkownik nie możesz pisać nic w folderach systemowych. koszulka daje użytkownikowi specjalne uprawnienia do pisania tekstu w pliki systemowe, podczas korzystania z sudo
  4. szlachetny to nazwa kodowa Ubuntu 24.04. Każda wersja Ubuntu ma nazwę kodową, taką jak:
Wersja Nazwa kodowa
20.04 Ogniskowy
22.04 Jammy
24.04 Szlachetny

Jeśli nie dopasuje się wersji Ubuntu do odpowiedniego wiersza poleceń, Ubuntu nie rozpozna repozytorium MongoDB.

Ubuntu 22.04 (Jammy)

Dodanie pliku listy do Ubuntu Jammy wygląda dokładnie tak samo, ale musisz wpisać wiersz poleceń, zamieniając szlachetny z jammyI notice you haven't provided English text to translate. Could you please share the English UI labels you'd like me to translate to Polish?

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

Upewnij się, że to ten, który odpowiada twojej wersji Ubuntu, w przeciwnym razie znowu się nie powiedzie.

Ubuntu 20.04 (Focal)

Wykonaj tutaj te same kroki, ale zamiast szlachetny or jammy, umieść w focal:

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

Teraz, gdy repozytorium jest skonfigurowane, możesz przystąpić do instalacji mongodb-org.

Odśwież bazę danych pakietów

Skoro repozytorium jest już rozpoznane przez Ubuntu, musisz przeładować bazę danych pakietów, aby od teraz obejmowała również MongoDB. Wpisz poniższe polecenie:

sudo apt-get update

To polecenie pozostaje takie samo we wszystkich wersjach Ubuntu. Jeśli go pominiesz, Ubuntu nie będzie zawierać MongoDB. Jeśli polecenie zadziała, w terminalu powinieneś zobaczyć:Wyjście terminala Ubuntu po uruchomieniu sudo apt-get update

 Teraz, po przeładowaniu bazy danych pakietów, czas pobrać pakiety MongoDB.

Zainstaluj MongoDB Community Server

Dostępnych jest wiele wydań MongoDB do instalacji, ale użytkownicy zazwyczaj wybierają najnowszą stabilną wersję, ponieważ jest bardziej preferowana. Aby zainstalować najnowszą stabilną wersję, wpisz sudo apt-get install -y mongodb-org

Ubuntu pobrał pakiety MongoDB, zainstalował je, utworzył konto użytkownika MongoDB oraz katalog danych, i zarejestrował MongoDB jako usługę systemową. Do tego momentu omówiliśmy, jak pobrać MongoDB na Ubuntu. Teraz uruchommy go.

Jak uruchomić MongoDB

Aby uruchomić MongoDB, musisz powiedzieć menedżerowi usług Ubuntu, "systemd", aby rozpoznał MongoDB jako usługę w tle. W tym celu wpisz następujące polecenie w terminalu:

sudo systemctl start mongod

Jeśli polecenie zadziała, Ubuntu otworzy MongoDB jako aplikację działającą w tle. Jeśli polecenie nie zadziała, możesz otrzymać błąd podobny do Nie udało się uruchomić mongod.service.

Może to się zdarzyć z powodu kilku typowych problemów:

  • Błąd w pliku konfiguracji in /etc/mongod.conf (błędy wcięć YAML są powszechne)
  • Konflikt portów (port 27017 jest już zajęty)
  • Problem z uprawnieniami w katalogach danych lub logów (var/lib/mongodb lub var/log/mongodb)
  • Dysk pełny or uszkodzony stan systemu plików

Trzy Komendy do Zdiagnozowania ProblemuFuturystyczna konfiguracja serwera + trzy komendy terminala Ubuntu + chmura ze ścieżką aktualizacji.

Łatwo powiedzieć, co może być nie tak z konfiguracją, przez którą MongoDB się nie uruchamia, ale znacznie trudniej jest wskazać dokładną przyczynę. Oto trzy sposoby, dzięki którym możesz zdiagnozować, skąd pochodzi błąd:

  1. Sprawdź status usługi: sudo systemctl status mongod –no-pager
  2. Sprawdź szczegółowe logi (najważniejsze): sudo journalctl -u mongod –no-pager -n 100
  3. Sprawdź plik logu samego MongoDB

Zwróć jednak uwagę, że jeśli dysk jest pełny lub pliki systemowe są uszkodzone, naprawa będzie bardziej kwestią sprzętu niż oprogramowania. Użytkownicy mogą być zmuszeni kupić lepszy sprzęt dla swojego serwera, aby efektywnie uruchamiać MongoDB, jeśli ich obecna konfiguracja jest przestarzała. 

Jeśli kupno pełnoprawnego serwera nie mieści się w twoim budżecie, rozważ sprawdzenie Ubuntu VPS dla czystego doświadczenia na twoim prywatnym serwerze z wybraną dystrybucją Ubuntu. Zawiera 24/7 obsługa i do 40Gbps prędkość sieci, dzięki jej magazyn NVMe SSD i DDR5 RAM przechowywanie.

Ponadto charakteryzuje się minimalnym opóźnieniem, 99.95% czas dostępności, oraz 14-dniowy gwarancją zwrotu pieniędzy. To nie wszystko, dostępny jest także w 12 lokalizacjach na całym świecie w przystępnej cenie.

Trzy Najczęstsze Rozwiązania do Uruchomienia MongoDB

Nie ma absolutnego sposobu na zidentyfikowanie dokładnego problemu systemu z MongoDB i jego naprawienie w jednym łatwym kroku. Oto kilka typowych rozwiązań, które możesz zastosować, aby mieć nadzieję, że MongoDB znowu się uruchomi.

  1. Błąd wcięcia konfiguracji YAML. Przypuśćmy, że edytowałeś /etc/mongod.conf ponownie sprawdź wcięcia, wykonując sudo nano /etc/mongod.conf. Plik YAML jest wrażliwy na białe znaki, dlatego upewnij się, że na każdym poziomie znajdują się dokładnie dwie spacje w /etc/mongod.conf.
  2. Port 27017 zajęty. Jeśli coś innego używa portu 27017, wyłącz to lub zmień port MongoDB w mongod.conf. Jeśli nie jesteś pewny, co działa na porcie 27017, możesz uruchomić sudo ss -lntp | grep 27017 sprawdzić to
  3. Problem uprawnień w katalogu danych. Czasami MongoDB nie ma uprawnień do uruchomienia w Twoim systemie i w ogóle się nie uruchamia. Najpierw uruchom sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodb, a następnie uruchom MongoDB ponownie za pomocą sudo systemctl restart mongod

Zgodnie z Oficjalna strona MongoDB, innym sposobem na obejście tego problemu jest przeładowanie demona za pomocą sudo systemctl daemon-reload, a następnie uruchom pierwszą komendę sudo systemctl start mongod, ponownie.

Jeśli nie ma mongod.service, instalacja nie umieściła jednostki systemd, dlatego zainstaluj ponownie mongodb-org zestaw pakietów

Możesz zweryfikować, czy MongoDB uruchomił się pomyślnie za pomocą sudo systemctl status mongod. Jeśli terminal wyświetli aktywny (uruchomiony), to wszystko jest w porządku. Istnieje jednak kilka dodatkowych konfiguracji, które uczynią Twoją pracę znacznie sprawniejszą.

Automatyzuj MongoDBZaawansowana konfiguracja serwera z symbolem automatyzacji MongoDB + terminal z komendą MongoDB + plik logu

MongoDB nie uruchamia się automatycznie za każdym razem, gdy włączysz serwer. Będziesz musiał powtórzyć niektóre z wymienionych kroków każdorazowo. Opcjonalnie możesz poinstruować Ubuntu, aby uruchamiał MongoDB po starcie systemu.

Po prostu uruchom sudo systemctl enable mongod w terminalu, co od tej pory poinstruuje Twój system, aby uruchamiał MongoDB po każdym ponownym uruchomieniu. Ponadto możesz uruchomić ponownie mongod proces wydając komendę sudo systemctl restart mongod. Dodatkowo użytkownicy mogą musieć przeglądnąć dane wyjściowe w pliku, aby śledzić wszelkie błędy lub ważne komunikaty:

/var/log/mongodb/mongod.log

Teraz, gdy wszystko jest skonfigurowane, zacznijmy korzystać z mongod.

Otwieranie powłoki MongoDB

Aby pracować z bazą danych, użytkownicy muszą otworzyć powłokę MongoDB, wydając polecenie mongosh. Pomyśl o tym jako dedykowanym wierszu poleceń dla MongoDB lub konsoli MySQL. Alternatywnie możesz pracować z MongoDB za pomocą narzędzi GUI, takich jak sterowniki MongoDB. Ale jeśli chcesz pracować z tym z poziomu terminala, mongosh pozwala to zrealizować.

Twój MongoDB będzie teraz w pełni funkcjonalny, ale musisz rozważyć kilka dodatkowych kroków, aby go zabezpieczyć.

Włącz autentykację w MongoDBProces autentykacji MongoDB, ikona kłódki i potwierdzenie autentykacji.

MongoDB domyślnie nie ma ochrony hasłem, ponieważ aby utworzyć użytkownika, musisz już mieć dostęp. Oto prosty sposób, aby to zrobić

Utwórz użytkownika administratora

Najpierw musisz przełączyć się na bazę danych admin za pomocą:

use admin

Następnie utwórz użytkownika za pomocą db.createUser({…}). Wypełnij to swoim

  • Nazwa użytkownika
  • Hasło
  • Rola

W polu rola wpisz najlepiej root co oznacza pełną kontrolę lub uprawnienia administratora.

Włącz uwierzytelnianie

Teraz, gdy mamy skonfigurowanego własnego użytkownika, musimy edytować /etc/mongod.conf plik. To dlatego, że ten plik kontroluje zachowanie MongoDB. Ale pamiętaj, że edytując plik, musisz zawsze ponownie uruchomić mongod usługę za pomocą sudo systemctl restart mongod. To, co musimy zmienić, to jeden parametr zwany authorization, który wygląda tak:

security:

  authorization:

Aby zakończyć proces autentykacji, po prostu zmień wartość authorization w taki sposób:

security:

  authorization: enabled

Od teraz MongoDB wymaga logowania, więc twoja autentykacja jest sfinalizowana. Przejdźmy teraz do innej konfiguracji, która w pełni wykorzystuje MongoDB.

Otwórz zaporę sieciową

Jak wspomniano wcześniej, MongoDB działa na porcie 27017. Ponieważ zapory sieciowe domyślnie blokują porty, musisz powiedzieć zaporze, aby zezwoliła na aplikacje działające na porcie 27017. Aby to zrobić, po prostu wydaj polecenie:

ufw allow from YOUR_IP to any port 27017

Alternatywnie możesz również wydać polecenie ufw allow 27017, ale uważaj, ponieważ jego uruchomienie pozwoli całemu internetowi na dostęp do tego portu. Bezpieczniej będzie wybrać pierwszą opcję, która zezwala na dostęp do portu tylko z Twojego adresu IP.

Użytkownicy mogą napotkać problemy podczas uruchamiania MongoDB, na przykład z dostępem zdalnym. Czytaj dalej, aby dowiedzieć się, jak to naprawić.

Problem z dostępem zdalnymKonfiguracja serwera z 3 monitorami do ustawiania ustawień dostępu zdalnego MongoDB + polecenia terminala.

MongoDB uruchamia się z bindIp. bindIp ogranicza MongoDB do 127.0.0.1, co pozwala tylko na połączenia lokalne. Dlatego jeśli spróbujesz połączyć się z serwerem MongoDB z innego miejsca, dostęp będzie Ci odmówiony, ponieważ MongoDB jest domyślnie skonfigurowany na zezwolenie tylko na połączenia lokalne, chyba że skonfiguruje się go inaczej.

Znowu przejdź do /etc/mongod.conf, a zobaczysz trzy linie takie jak ta:

net:

  port: 27017

  bindIp: 127.0.0.1

Jeśli chcesz zezwolić na zdalne połączenia z Twoim mongod użytkownikiem, zmień podane wyżej wartości w ten sposób:

net:

  port: 27017

  bindIp: 0.0.0.0

Następnie uruchom ponownie Twój mongod usługa z sudo systemctl restart mongod tak jak przy każdej innej edycji tego pliku.

Właśnie udzieliłeś/udzieliłaś swojemu mongod usłudze uprawnienia do akceptowania zdalnych połączeń. Ale uważaj, ponieważ wykonując to, udostępnisz swoją bazę danych całemu internetowi, jeśli jeszcze nie uwierzytelniłeś/uwierzytelniłaś swojego mongod użytkownika. Istnieje wiele botów, które stale skanują otwarte porty MongoDB, dlatego zawsze upewnij się, że użytkownik mongod ma hasło.

Przegląd całości

Gratulacje, wykonałeś/wykonałaś już wszystko, aby stworzyć zoptymalizowaną usługę MongoDB dla systemu Ubuntu. Oto również mapa mentalna do śledzenia każdego kroku przedstawionego w tym artykule.

Polecenie Co to robi
aktualizacja apt Odśwież listę oprogramowania
apt zainstaluj Zainstaluj oprogramowanie
curl Pobierz plik
gpg Zarządzaj kluczami szyfrowania
echo Drukuj tekst
koszulka Zapisz do chronionego pliku
systemctl start Uruchom usługę
systemctl enable Uruchom przy starcie
systemctl status Sprawdź usługę
mongosh Wejdź do powłoki MongoDB
Edytuj /etc/mongod.conf Włącz uwierzytelnianie
ufw Zarządzaj zaporą
bindIp Zezwól na dostęp zdalny

To powinno Ci pomóc w lepszym zrozumieniu całego procesu. Ale jeśli samodzielne skonfigurowanie MongoDB jest dla Ciebie zbyt trudne, upewnij się, że uruchamiasz MongoDB VPS dla Twojego prywatnego serwera Ubuntu 24.04 LTS z preinstalowanym MongoDB.

Wyposażony w 99.95% uptime, 24/7 wsparcie i 14-dniowy gwarancja zwrotu pieniędzy. Poza tym obsługuje do 40 Gbps przepustowości dzięki DDR5 RAM i magazyn NVMe SSD miejsca na dane. Nie martw się, gdzie mieszkasz, bo jest dostępne też w 12 lokalizacjach na całym świecie w przystępnej cenie.

Ale skoro już udało Ci się skonfigurować własną usługę MongoDB wyposażoną we wszystkie ustawienia potrzebne do obsługi obciążeń i biznesu na poziomie produkcji.

Udostępnij

Więcej z bloga

Czytaj dalej.

Inteligentne zarządzanie danymi w firmie: strategie przechowywania i tworzenia kopii zapasowych w stylu chmurowym z VPS
Bazy danych i analityka

Inteligentne zarządzanie danymi w firmie: strategie przechowywania i tworzenia kopii zapasowych w stylu chmurowym z VPS

VPS do bezpiecznego zarządzania danymi firmowymi to strategia, którą polecam zawsze, gdy firma decyduje się przestać żonglować plikami między laptopami, załącznikami e-mail i zapomnianymi

Rexa CyrusRexa Cyrus 7 minut czytania
Zmaterializowany widok a widok
Bazy danych i analityka

Zmaterializowany widok a widok: rola obu rozwiązań w bazach danych

W systemach bazodanowych zmaterializowany widok to obiekt bazy danych, który przechowuje wstępnie obliczone wyniki zapytania jako fizyczną tabelę. Ponieważ dane są faktycznie zapisane na dysku, złożone

Ivy JohnsonIvy Johnson 7 minut czytania
Snowflake vs Databricks
Bazy danych i analityka

Databricks vs Snowflake: bezstronne porównanie dla specjalistów danych 🧱❄️

W przypadku firm, które opierają decyzje na danych - niezależnie czy to platformy e-commerce śledzące zachowania klientów, instytucje finansowe prognozujące trendy, czy firmy technologiczne

Allan Van KirkAllan Van Kirk Czytanie w 13 minut

Gotowy do wdrożenia? Od 2,48 USD/miesiąc.

Niezależna chmura od 2008 roku. AMD EPYC, NVMe, 40 Gbps. Zwrot pieniędzy w ciągu 14 dni.