Zdecydowałeś się więc użyć MongoDB, świetnie alternative to MariaDB do budowy aplikacji stosowej MERN, platformy analitycznej lub dowolnego systemu opartego na dokumentach, ale uderzyły w ścianę ze starymi, dobrymi liniami poleceń Linuksa i niezliczonymi błędami terminali.
Jednak nie martw się, ponieważ ten przewodnik zawiera wszystko, co musisz wiedzieć od A do Z, aby zainstalować MongoDB na Ubuntu.
Używa MongoDB X.Y.Z wersjonowanie. 8.0 jest główny seria wydawnicza i 8.2 jest drobny wypuścić w ramach tego cyklu 8.0. Wersje mniejsze dodają funkcje w ramach tego samego głównego cyklu, a począwszy od wersji 8.0 są również oferowane do instalacji lokalnych w określonych przypadkach użycia (na przykład wyszukiwanie i wyszukiwanie wektorowe). Obsługuje MongoDB 8.0 na Ubuntu 24.04 (Noble), 22.04 (Jammy) i 20.04 (Focal) w systemach 64-bitowych, z obsługą ARM64 na wybranych platformach.
Wymagania wstępne GnuPG i Curl
Przed zainstalowaniem urzędnika mongodb-org pakietu Ubuntu wymaga dwóch wymagań wstępnych: GnuPG I Kędzior. Narzędzia te dają Ubuntu pozwolenie na pobranie MongoDB, ponieważ jest to własność Ubuntu mongodb pakiet nie jest obsługiwany przez MongoDB Inc. i jest w konflikcie z urzędnikiem mongodb-org pakiet. Jeśli już zainstalowałeś mongodb koniecznie go odinstalowaj.
Następnie uruchom polecenie sudo apt-get zainstaluj gnupg curl. Curl to narzędzie do pobierania plików z Internetu, potrzebne do odzyskania klucza bezpieczeństwa MongoDB. GnuPG jest tym, czego Ubuntu używa do weryfikacji autentyczności oprogramowania. Jeśli brakuje GnuPG, Ubuntu nie zweryfikuje pakietów MongoDB.
Upewnij się, że Twój terminal pomyślnie zainstalował GnuPG i Curl. Jeżeli tak, powinno to wyglądać tak:
Importowanie klucza GPG MongoDB
Menedżer pakietów Ubuntu, APT, używa kluczy GPG do weryfikacji pakietów przed instalacją. Bez tego klucza GPG Ubuntu nie pozwala na dodawanie repozytoriów MongoDB. Wpisz następujące 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 to zadziała, dane wyjściowe terminala powinny wyglądać następująco:
Mówiąc prościej, to polecenie pobiera podpis bezpieczeństwa MongoDB, konwertuje go do formatu, który może odczytać Ubuntu i zapisuje go w bezpiecznym folderze systemowym. Oto podział wiersza poleceń sekcja po sekcji:
- curl -fsSL Adres URL pobiera oficjalny klucz MongoDB
- – kochany konwertuje klucz z formatu tekstowego na binarny, aby Ubuntu mógł go zrozumieć
- -o /usr/share/keyrings/mongodb-server-8.0.gpg zapisuje plik binarny w folderze, w którym Ubuntu przechowuje zaufane klucze
Jeśli idealnie dopasujesz każdą linię poleceń, publiczny klucz GPG zostanie dodany bez żadnych problemów. Niektórzy użytkownicy napotykają jednak problemy podczas pobierania MongoDB z powodu niedopasowanego klucza GPG. Błędy takie jak:
NO_PUBKEY
The following signatures couldn't be verified
public key not available
Dzieje się tak, gdy nie wykonasz wcześniej dokładnych poleceń klawisza GPG i zamiast tego użyjesz sudo apt-key ponieważ nowoczesny Ubuntu tego nie zaleca.
Dodaj repozytorium MongoDB
Dodanie repozytorium MongoDB powoduje utworzenie pliku informującego Ubuntu, że pakiety MongoDB są dostępne pod określonym adresem internetowym. Utwórz plik listy pod adresem /etc/apt/sources.list.d/mongodb-org-8.0.list zapisując w nim linię repozytorium za pomocą echo… | koszulka Sudo…
W tym miejscu robi się trudno, ponieważ różne wersje Ubuntu wymagają innej odmiany tego polecenia. Przeanalizujemy teraz, jak zaimportować plik listy do trzech wspomnianych wcześniej wersji Ubuntu.
Ubuntu 24.04 (szlachetny)
Aby utworzyć plik listy w systemie Ubuntu 24.04, po prostu umieść echo „deb [ arch=amd64,arm64 Sign-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 na swoim terminalu.
Może to wyglądać na mylące, ale nie przejmuj się. Gdy podzielimy polecenie na sekcje, wszystko będzie jasne.
- echo drukuje tekst
- /etc/apt/sources.list.d to folder, w którym Ubuntu przechowuje definicje źródeł oprogramowania. Każdy plik z .lista format wewnątrz folderu wskazuje Ubuntu na określoną lokalizację, z której można pobrać oprogramowanie
- Domyślnie jako zwykły użytkownik nie możesz pisać niczego w folderach systemowych. trójnik daje użytkownikowi specjalne uprawnienia do zapisywania tekstu w plikach systemowych podczas używania sudo
- szlachetny to nazwa kodowa Ubuntu 24.04. Każda wersja Ubuntu ma kryptonim taki jak:
| Wersja | Nazwa kodowa |
| 20.04 | Ogniskowy |
| 22.04 | Lepki |
| 24.04 | Szlachetny |
Jeśli nie dopasujesz swojej wersji Ubuntu do odpowiedniego wiersza poleceń, Ubuntu nie rozpozna repozytorium MongoDB.
Ubuntu 22.04 (Jammy)
Dodanie pliku listy do Ubuntu Jammy wygląda tak samo, ale podczas zastępowania musisz wpisać wiersz poleceń szlachetny z lepki, tak:
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 jest to ten, który pasuje do Twojej wersji Ubuntu, w przeciwnym razie ponownie się nie powiedzie.
Ubuntu 20.04 (centralny)
Wykonaj te same kroki tutaj, ale zamiast szlachetny or lepki, Putin ogniskowy:
echo „deb [ arch=amd64,arm64 Sign-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, po skonfigurowaniu repozytorium, możesz przystąpić do instalacji mongodb-org.
Odśwież bazę danych pakietów
Teraz, gdy repozytorium zostało rozpoznane przez Ubuntu, musisz ponownie załadować znajdującą się w nim bazę danych pakietów, aby odtąd zawierała również MongoDB. Wydaj polecenie wymienione poniżej:
sudo apt-get update
To polecenie pozostaje takie samo we wszystkich wersjach Ubuntu, a jeśli zostanie pominięte, Ubuntu nie będzie zawierać MongoDB. Jeśli polecenie wykona swoje zadanie, wyjście terminala powinno wyglądać:
Teraz, po ponownym załadowaniu bazy danych pakietów, czas pobrać pakiety MongoDB.
Zainstaluj serwer społeczności MongoDB
Do zainstalowania są różne wersje MongoDB, ale użytkownicy zwykle wybierają najnowszą stabilną wersję, ponieważ jest ona bardziej preferowana. Aby zainstalować najnowszą stabilną wersję, uruchom sudo apt-get install -y mongodb-org
Ubuntu pobrał teraz pakiety MongoDB, zainstalował je, utworzył konto użytkownika MongoDB i katalog danych oraz zarejestrował MongoDB jako usługę systemową. Do tej pory omówiliśmy, jak pobrać MongoDB na Ubuntu. Teraz zacznijmy to robić.
Jak uruchomić MongoDB
Teraz, aby uruchomić MongoDB, musimy powiedzieć menedżerowi usług Ubuntu „systemd”, aby rozpoznał MongoDB jako usługę w tle i aby to zrobić, musisz wpisać następujące polecenie w terminalu:
sudo systemctl start mongod
Jeśli polecenie wykona swoje zadanie, Ubuntu otworzy teraz MongoDB jako aplikację działającą w tle. Jeśli jednak polecenie nie wykona swojego zadania, może pojawić się błąd podobny do Nie udało się uruchomić mongod.service.
Może się to zdarzyć z powodu kilku typowych problemów:
- Błąd pliku konfiguracyjnego in /etc/mongod.conf (Błędy wcięcia YAML są częste)
- Konflikt portowy (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 polecenia umożliwiające zdiagnozowanie problemu
Łatwo jest powiedzieć, co może być nie tak z Twoją konfiguracją, że MongoDB nie działa, ale znacznie trudniej jest określić dokładną przyczynę. Trzy proste sposoby zdiagnozowania źródła błędu to:
- Sprawdź status usługi: sudo systemctl status mongod –no-pager
- Sprawdź szczegółowe logi (najważniejsze): sudo journalctl -u mongod –no-pager -n 100
- Sprawdź własny plik dziennika MongoDB
Należy jednak pamiętać, że jeśli dysk jest pełny lub pliki systemowe są uszkodzone, naprawa będzie dotyczyć raczej sprzętu niż oprogramowania. Użytkownicy mogą być zmuszeni do zakupu lepszego sprzętu do konfiguracji serwera, aby wydajnie obsługiwać MongoDB, jeśli ich bieżąca konfiguracja jest przestarzała.
Jeśli zakup pełnego serwera nie mieści się w Twoim budżecie, rozważ sprawdzenie Cloudzy’s Ubuntu VPS aby cieszyć się czystym doświadczeniem na własnym prywatnym serwerze z dystrybucją Ubuntu, którą lubisz. To przychodzi z 24/7 wsparcie i do 40Gbps prędkość sieci, dzięki Dysk SSD NVMe I RAM DDR5 składowanie.
Co więcej, ma minimalne opóźnienia, 99.95% czas pracy oraz a 14-dniowy gwarancja zwrotu pieniędzy. Nie tylko to, ale jest również dostępne w 12 lokalizacjach na całym świecie w przystępnej cenie.
Trzy najczęstsze poprawki umożliwiające działanie MongoDB
Nie ma absolutnego sposobu na rozpoznanie dokładnego problemu systemu z MongoDB i naprawienie go w jednym prostym kroku. Oto kilka typowych poprawek, których możesz użyć, aby, miejmy nadzieję, uruchomić MongoDB.
- Błąd wcięcia konfiguracji YAML. Załóżmy, że edytowałeś /etc/mongod.conf ponownie sprawdź wcięcie, wyświetlając monit sudo nano /etc/mongod.conf. Plik YAML jest dość wrażliwy na białe znaki, więc upewnij się, że na każdym poziomie znajdują się tylko dwie spacje /etc/mongod.conf.
- Zajęty port 27017. Jeśli coś innego używa portu 27017, zamknij go lub zmień port MongoDB mongod.conf. Jeśli nie masz pewności, czy cokolwiek działa na porcie 27017, nie wahaj się uruchomić sudo ss -lntp | grep 27017 żeby to sprawdzić
- Problem z uprawnieniami w katalogu danych. Czasami MongoDB nie ma uprawnień do działania w Twoim systemie i dlatego w ogóle nie działa. Premiera sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodb, a następnie uruchom ponownie MongoDB za pomocą sudo systemctl zrestartuj mongod
Według Oficjalna strona MongoDB, innym sposobem obejścia tego problemu jest ponowne załadowanie demona sudo systemctl demon-reloadi uruchom pierwsze polecenie, sudo systemctl uruchom mongod, Ponownie.
Jeśli nie ma mongod.service, instalacja nie umieściła jednostki systemowej, więc zainstaluj ponownie mongodb-org zestaw pakietów.
Mając to wszystko na uwadze, możesz następnie sprawdzić, czy MongoDB uruchomiło się pomyślnie Sudo systemctl status mongod. Jeśli terminal powie aktywny (biegający)możesz już iść. Istnieje jednak kilka dalszych konfiguracji, dzięki którym korzystanie z niego jest znacznie płynniejsze.
Zautomatyzuj MongoDB
MongoDB nie otwiera się automatycznie przy każdym włączeniu serwera; za każdym razem będziesz musiał powtórzyć niektóre z wymienionych kroków. Opcjonalnie możesz powiedzieć Ubuntu, aby uruchomił MongoDB po uruchomieniu systemu na pulpicie.
Po prostu biegnij sudo systemctl włącz mongod na terminalu, który odtąd będzie informował Twój system, aby uruchamiał MongoDB po każdym ponownym uruchomieniu. Co więcej, możesz ponownie uruchomić monbóg przetworzyć, wydając polecenie sudo systemctl zrestartuj mongod. Ponadto może być konieczne prześledzenie procesu pod kątem błędów lub ważnych komunikatów, przeglądając dane wyjściowe w pliku:
/var/log/mongodb/mongod.log
Teraz, gdy wszystko jest skonfigurowane, zacznijmy używać twojego mongod.
Otwieranie powłoki MongoDB
Aby wejść w interakcję ze swoją bazą danych, użytkownicy muszą otworzyć powłokę MongoDB, wydając polecenie mongosz. Pomyśl o tym jak o dedykowanym terminalu wiersza poleceń dla MongoDB lub konsoli MySQL. Alternatywnie możesz wchodzić w interakcję z MongoDB za pomocą narzędzi GUI, takich jak sterowniki MongoDB. Ale jeśli chcesz wchodzić z nim w interakcję z terminala, mongosz jest po to, żeby tak się stało.
Twoja baza danych MongoDB będzie teraz w pełni funkcjonalna, ale musisz wziąć pod uwagę kilka dodatkowych kroków, aby zapewnić jej bezpieczeństwo.
Uwierzytelnij MongoDB
MongoDB domyślnie nie jest chroniona hasłem, ponieważ musisz już mieć dostęp, aby utworzyć użytkownika. Oto prosty sposób, aby to osiągnąć
Utwórz użytkownika administracyjnego
Najpierw musisz przejść do bazy danych administratora za pomocą:
use admin
Następnie utwórz użytkownika za pomocą db.createUser({…}). Wypełnij go swoim
- Nazwa użytkownika
- Hasło
- Rola
Jako rolę najlepiej wpisać źródło co oznacza pełną kontrolę lub administratora.
Włącz uwierzytelnianie
Teraz, gdy mamy już skonfigurowanego własnego użytkownika, musimy edytować plik /etc/mongod.conf plik. Dzieje się tak, ponieważ ten plik kontroluje zachowanie MongoDB. Pamiętaj jednak, że edytując plik, musisz zawsze zrestartować plik monbóg obsługa później z sudo systemctl zrestartuj mongod. Musimy tutaj zmienić jeden parametr zwany autoryzacją, który wygląda następująco:
security:
authorization:
Aby zakończyć proces uwierzytelniania, po prostu zmień wartość autoryzacji w następujący sposób:
security:
authorization: enabled
Od tego momentu MongoDB wymaga logowania, więc Twoje uwierzytelnianie zostało sfinalizowane. Przejdźmy teraz do kolejnej konfiguracji, która w pełni wykorzystuje MongoDB.
Otwórz swoją zaporę sieciową
Jak wspomniano wcześniej, MongoDB działa na porcie 27017. Ponieważ zapory ogniowe domyślnie blokują porty, musisz powiedzieć swojej zaporze, aby zezwalała na uruchamianie aplikacji na porcie 27017. Aby tak się stało, po prostu wydaj polecenie:
ufw allow from YOUR_IP to any port 27017
Alternatywnie możesz także wydać polecenie ufw pozwala na 27017, ale bądź ostrożny, ponieważ uruchomienie tego umożliwi całemu Internetowi dostęp do tego portu. Najbezpieczniejszym rozwiązaniem może być po prostu skorzystanie z pierwszej opcji, ponieważ umożliwia ona ruchowi dostęp do portu tylko z Twojego adresu IP.
Użytkownicy mogą nadal napotykać wyzwania podczas uruchamiania MongoDB, takie jak problem ze zdalnym dostępem. Pozostań w pobliżu, aby dowiedzieć się, jak to naprawić.
Problem ze zdalnym dostępem
MongoDB uruchamia się z bindIp. bindIp ogranicza MongoDB do 127.0.0.1, zezwalając jedynie na połączenia lokalne. Dlatego też, jeśli miałbyś połączyć się z serwerem MongoDB z innego miejsca, nie miałbyś dostępu, ponieważ MongoDB jest domyślnie skonfigurowany tak, aby zezwalał tylko na połączenia na miejscu, chyba że skonfigurowano inaczej.
Ponownie udaj się 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 monbóg użytkownik, zmień wartości przedstawione powyżej w następujący sposób:
net:
port: 27017
bindIp: 0.0.0.0
Następnie uruchom ponownie swój monbóg obsługa z sudo systemctl zrestartuj mongod jak w przypadku każdej innej edycji pliku.
Teraz przyznałeś swoje monbóg zezwolenie usługi na akceptowanie połączeń zdalnych. Ale bądź ostrożny, ponieważ w ten sposób udostępnisz swoją bazę danych całemu Internetowi, jeśli jeszcze jej nie uwierzytelniłeś monbóg użytkownik. Istnieje wiele botów, które stale skanują otwarte porty MongoDB, więc zawsze upewnij się, że użytkownik mongod ma hasło.
Podsumowanie dużego obrazu
Gratulacje, zrobiłeś już wszystko, aby stworzyć zoptymalizowaną usługę MongoDB dla swojego systemu Ubuntu. Oto także mapa mentalna do śledzenia każdego kroku przedstawionego w tym artykule.
| Rozkaz | Co to robi |
| trafna aktualizacja | Odśwież listę oprogramowania |
| trafna instalacja | Zainstaluj oprogramowanie |
| kędzior | Pobierz plik |
| gpg | Zarządzaj kluczami szyfrowania |
| echo | Wydrukuj tekst |
| trójnik | Zapisz do chronionego pliku |
| start systemuctl | Uruchom usługę |
| włącz systemctl | Zacznij od rozruchu |
| stan systemctl | Sprawdź usługę |
| mongosz | Wejdź do powłoki MongoDB |
| Redagować /etc/mongod.conf | Włącz uwierzytelnianie |
| uf | Zarządzaj zaporą sieciową |
| bindIp | Zezwól na dostęp zdalny |
To powinno pomóc Ci lepiej zrozumieć cały proces. Jeśli jednak samodzielna konfiguracja MongoDB to dla Ciebie za dużo, pamiętaj o uruchomieniu Cloudzy’s MongoDB VPS dla Twojego prywatnego serwera Ubuntu 24.04 LTS z preinstalowaną MongoDB.
To przychodzi z 99.95% czas pracy, 24/7 wsparcie i A 14-dniowy gwarancja zwrotu pieniędzy. Poza tym obsługuje do 40 Gbps przepustowości dzięki RAM DDR5 I Dysk SSD NVMe składowanie. Nie martw się nawet o to, gdzie mieszkasz, ponieważ jest to również dostępne w 12 lokalizacjach na całym świecie po przystępnej cenie.
Ale powiedziawszy to wszystko, w końcu udało Ci się skonfigurować własną, wydajną usługę MongoDB wyposażoną w każdą konfigurację do obsługi obciążeń i firm na poziomie produkcyjnym.