MongoDB jest darmową i open-source’ową bazą danych dokumentów. Należy do rodziny baz danych zwanych NoSQL, która różni się od tradycyjnych baz danych SQL opartych na tabelach, takich jak MySQL i PostgreSQL.
W MongoDB dane są przechowywane w elastycznych, lubianych przez JSON dokumentach, w których pola mogą się różnić w zależności od dokumentu. Nie wymaga on predefiniowanego schematu, a struktura danych może być zmieniana w czasie.
W tym poradniku omówimy proces instalacji i konfiguracji najnowszej wersji MongoDB Community Edition na maszynie Ubuntu 18.04 z oficjalnych repozytoriów MongoDB.
Wymagania wstępne #
Przed kontynuowaniem tego poradnika upewnij się, że jesteś zalogowany jako użytkownik z uprawnieniami sudo.
Instalacja MongoDB #
W czasie pisania tego artykułu, najnowszą wersją MongoDB jest wersja 4.0.
Przed kontynuowaniem procesu instalacji, przejdź do sekcji Install on Ubuntusection dokumentacji MongoDB i sprawdź, czy jest dostępne nowe wydanie.
Następujące kroki opisują, jak zainstalować MongoDB na serwerze Ubuntu:
-
Dodaj klucz GPG MongoDB do systemu za pomocą następującego polecenia:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
Po zaimportowaniu klucza dodaj repozytorium MongoDB za pomocą:
sudo add-apt-repository 'deb https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'
Jeśli otrzymasz komunikat o błędzie o treści
add-apt-repository command not found
, zainstaluj pakietsoftware-properties-common
.Aby zainstalować starszą wersję MongoDB, zastąp
4.0
swoją preferowaną wersją. -
Zaktualizuj listę pakietów i zainstaluj metapakiet
mongodb-org
, wpisując:sudo apt update
sudo apt install mongodb-org
Następujące pakiety zostaną zainstalowane w systemie jako część pakietu
mongodb-org
:-
mongodb-org-server
– Demonmongod
i odpowiadające mu skrypty inicjujące oraz konfiguracje. -
mongodb-org-mongos
– Demonmongos
. -
mongodb-org-shell
– Powłoka mongo jest interaktywnym interfejsem JavaScript do MongoDB. Służy do wykonywania zadań administracyjnych za pośrednictwem wiersza poleceń. -
mongodb-org-tools
– Zawiera kilka narzędzi MongoDB do importowania i eksportowania danych, statystyk, a także innych narzędzi.
-
-
Po zakończeniu instalacji należy uruchomić demona MongoDB i włączyć jego uruchamianie przy starcie systemu, wpisując:
sudo systemctl start mongod
sudo systemctl enable mongod
-
Aby sprawdzić, czy instalacja zakończyła się pomyślnie, połączymy się z serwerem bazy danych MongoDB za pomocą narzędzia
mongo
i wydrukujemy stan połączenia:mongo --eval 'db.runCommand({ connectionStatus: 1 })'
Wyjście będzie wyglądać następująco:
MongoDB shell version v4.0.10connecting to: mongodb://127.0.0.1:27017MongoDB server version: 4.0.10{ "authInfo" : { "authenticatedUsers" : , "authenticatedUserRoles" : }, "ok" : 1}
Wartość
1
dla polaok
oznacza sukces.
Konfigurowanie MongoDB #
MongoDB używa pliku konfiguracyjnego w formacie YAML, /etc/mongod.conf
. Możesz skonfigurować swoją instancję MongoDB poprzez edycję tego pliku.
Domyślne ustawienia konfiguracyjne są wystarczające dla większości użytkowników. Jednakże, dla środowisk produkcyjnych, zalecane jest odkomentowanie sekcji bezpieczeństwa i włączenie autoryzacji, jak pokazano poniżej:
security: authorization: enabled
Opcja authorization
włącza kontrolę dostępu opartą na rolach (RBAC), która reguluje dostęp użytkowników do zasobów bazy danych i operacji. Jeśli ta opcja jest wyłączona, każdy użytkownik będzie miał dostęp do wszystkich baz danych i będzie mógł wykonywać dowolne działania.
Po wprowadzeniu zmian w pliku konfiguracyjnym MongoDB należy ponownie uruchomić usługę mongod za pomocą:
sudo systemctl restart mongod
Aby znaleźć więcej informacji na temat opcji konfiguracyjnych dostępnych w MongoDB 4.0, odwiedź stronę Configuration File Optionsdocumentation.
Tworzenie administracyjnego użytkownika MongoDB #
Jeśli włączyłeś uwierzytelnianie MongoDB, utwórz administracyjnego użytkownika MongoDB, który będzie używany do uzyskiwania dostępu i zarządzania instancją MongoDB.
Najpierw uzyskaj dostęp do powłoki MongoDB za pomocą:
mongo
Jak już będziesz wewnątrz powłoki MongoDB, wpisz następujące polecenie, aby połączyć się z admin
bazą danych:
use admin
switched to db admin
Wykonaj następujące polecenie, aby utworzyć nowego użytkownika o nazwie mongoAdmin
z rolą userAdminAnyDatabase
:
db.createUser( { user: "mongoAdmin", pwd: "changeMe", roles: })
Successfully added user: {"user" : "mongoAdmin","roles" : }
Wyjdź z powłoki mongo za pomocą:
quit()
Aby przetestować zmiany, uzyskaj dostęp do powłoki mongo za pomocą użytkownika administracyjnego, którego wcześniej utworzyłeś:
mongo -u mongoAdmin -p --authenticationDatabase admin
use admin
switched to db admin
Teraz wydrukuj użytkowników za pomocą:
show users
{"_id" : "admin.mongoAdmin","user" : "mongoAdmin","db" : "admin","roles" : ,"mechanisms" : }
Możesz również spróbować uzyskać dostęp do powłoki mongo bez żadnych argumentów ( wystarczy wpisać mongo
) i sprawdzić, czy możesz wyświetlić listę użytkowników, używając tych samych poleceń, co powyżej.
Zakończenie #
Dowiedziałeś się, jak zainstalować i skonfigurować MongoDB 4.0 na swoim serwerze Ubuntu 18.04. Odwiedź Podręcznik MongoDB 4.0, aby uzyskać więcej informacji na ten temat.