Kako instalirati MongoDB na Ubuntu 18.04


MongoDB je moderni sistem za upravljanje bazom podataka otvorenog koda dizajniran za postojanost podataka visokih performansi, visoku dostupnost, kao i automatsko skaliranje, zasnovan na najsavremenijoj tehnologiji NoSQL. Pod MongoDB, zapis je dokument, koji je struktura podataka koja se sastoji od parova polja i vrijednosti (MongoDB dokumenti su uporedivi sa JSON objektima).

Budući da pruža visoke performanse i velike karakteristike skalabilnosti, koristi se za izgradnju modernih aplikacija koje zahtijevaju moćne, kritične za misiju i visoke dostupnosti baze podataka.

U ovom članku ćemo objasniti kako instalirati MongoDB, upravljati njegovom uslugom i postaviti osnovnu autentifikaciju na Ubuntu 18.04.

Važno: Imajte na umu da programeri MongoDB nude samo pakete za 64-bitni LTS (dugoročna podrška) Ubuntu izdanja kao što je 14,04 LTS (pouzdani), 16,04 LTS (xenial), i tako dalje.

Pročitajte također: Kako instalirati MongoDB na Ubuntu 16.04/14.04 LTS

Korak 1: Instaliranje MongoDB-a na Ubuntu 18.04

1. Zvanična skladišta softverskih paketa Ubuntua dolaze sa najnovijom verzijom MongoDB i mogu se lako instalirati pomoću APT menadžera paketa.

Prvo ažurirajte keš sistemskog softverskog paketa kako biste imali najnoviju verziju popisa spremišta.

sudo apt update

2. Zatim instalirajte MongoDB paket koji uključuje nekoliko drugih paketa kao što su mongo-tools, mongodb-clients, mongodb-server< i mongodb-server-core.

sudo apt install mongodb

3. Nakon što ga uspješno instalirate, MongoDB servis će se automatski pokrenuti preko systemd-a i proces sluša na portu 27017. Možete provjeriti njegov status koristeći naredbu systemctl kao što je prikazano.

sudo systemctl status mongodb

Korak 2: Upravljanje MongoDB servisom

4. Instalacija MongoDB dolazi kao systemd usluga i može se lako upravljati putem standardnih systemd komandi kao što je prikazano.

Da biste zaustavili pokretanje MongoDB servisa, pokrenite sljedeću naredbu.

sudo systemctl stop mongodb	

Da biste pokrenuli MongoDB servis, otkucajte sljedeću naredbu.

sudo systemctl start mongodb

Da biste ponovo pokrenuli MongoDB servis, otkucajte sljedeću naredbu.

sudo systemctl restart mongodb	

Da biste onemogućili automatski pokrenut MongoDB servis, otkucajte sljedeću naredbu.

sudo systemctl disable mongodb	

Da ponovo omogućite MongoDB uslugu, upišite sljedeću naredbu.

sudo systemctl enable mongodb	

Korak 3: Omogućite udaljeni pristup MongoDB na zaštitnom zidu

5. Prema zadanim postavkama MongoDB radi na portu 27017, kako bi omogućio pristup sa svih strana koje možete koristiti.

sudo ufw allow 27017

Ali omogućavanje pristupa MongoDB sa svih strana daje neograničen pristup podacima baze podataka. Dakle, bolje je dati pristup određenoj lokaciji IP adrese zadanom portu MongoDB koristeći sljedeću naredbu.

sudo ufw allow from your_server_IP/32 to any port 27017 
sudo ufw status

6. Podrazumevano port 27017 sluša samo na lokalnoj adresi 127.0.0.1. Da biste dozvolili udaljene MongoDB konekcije, morate dodati IP adresu vašeg servera u /etc/mongodb.conf konfiguracijski fajl kao što je prikazano.

bind_ip = 127.0.0.1,your_server_ip
#port = 27017

Sačuvajte datoteku, izađite iz editora i ponovo pokrenite MongoDB.

sudo systemctl restart mongodb

Korak 4: Kreirajte root korisnika i lozinku MongoDB baze podataka

7. Prema zadanim postavkama MongoDB dolazi sa onemogućenom autentifikacijom korisnika, stoga se pokreće bez kontrole pristupa. Da pokrenete mongo shell, pokrenite sljedeću naredbu.

mongo 

8. Nakon što se povežete na mongo shell, možete navesti sve dostupne baze podataka pomoću sljedeće naredbe.

> show dbs

9. Da biste omogućili kontrolu pristupa na vašoj MongoDB implementaciji radi provođenja provjere autentičnosti; zahtijevajući od korisnika da se identifikuju svaki put kada se povežu na poslužitelj baze podataka.

MongoDB koristi Salted Challenge Response Authentication Mechanism (SCRAM) mehanizam provjere autentičnosti prema zadanim postavkama. Koristeći SCRAM, MongoDB provjerava isporučene korisničke vjerodajnice u odnosu na korisničko ime, lozinku i autentifikacijsku bazu podataka (baza podataka u kojoj je korisnik kreiran, a zajedno s korisničkim imenom služi za identifikaciju korisnika).

Morate kreirati administratora korisnika (analogno root korisniku pod MySQL/MariaDB) u admin bazi podataka. Ovaj korisnik može administrirati korisnike i uloge kao što su kreiranje korisnika, dodjeljivanje ili opoziv uloga od korisnika i kreiranje ili modificiranje prilagođenih uloga.

Prvo se prebacite na admin bazu podataka, a zatim kreirajte root korisnika koristeći sljedeće naredbe.

> use admin 
> db.createUser({user:"root", pwd:"=@!#@%$admin1", roles:[{role:"root", db:"admin"}]})

Sada izađite iz mongo ljuske da omogućite autentifikaciju kao što je objašnjeno u nastavku.

10. Instanca mongodb je pokrenuta bez opcije komandne linije --auth. Morate omogućiti autentifikaciju korisnika uređivanjem datoteke /lib/systemd/system/mongod.service, prvo otvorite datoteku za uređivanje na taj način.

sudo vim /lib/systemd/system/mongodb.service 

U odjeljku konfiguracije [Service] pronađite parametar ExecStart.

ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS

Promijenite ga na sljedeće:

ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS

Sačuvajte datoteku i izađite iz nje.

11. 8. Nakon što izvršite promjene u konfiguracijskoj datoteci, pokrenite ‘systemctl daemon-reload’ da ponovo učitate jedinice i restartujete MongoDB servis i provjerite njegov status na sljedeći način.

systemctl daemon-reload
sudo systemctl restart mongodb	
sudo systemctl status mongodb	

12. Sada kada pokušate da se povežete na mongodb, morate se autentifikovati kao korisnik MongoDB. Na primjer:

mongo -u "root" -p --authenticationDatabase "admin"

Napomena: Ne preporučuje se unos vaše lozinke u komandnu liniju jer će biti pohranjena u datoteci historije ljuske i napadač će je kasnije moći vidjeti.

To je sve! MongoDB je moderan sistem upravljanja bazom podataka otvorenog koda bez SQL-a koji pruža visoke performanse, visoku dostupnost i automatsko skaliranje.

U ovom članku smo objasnili kako instalirati i započeti s MongoDB u Ubuntu 18.04. Ako imate bilo kakvih pitanja, koristite formu za komentare ispod da nas kontaktirate.