Kako instalirati MongoDB na Ubuntu 18.04


MongoDB je moderan sustav za upravljanje bazom podataka otvorenog koda dizajniran za postojanost podataka visokih performansi, visoku dostupnost, kao i automatsko skaliranje, temeljeno na najsuvremenijoj tehnologiji NoSQL. Pod MongoDB, zapis je dokument, koji je podatkovna struktura koja se sastoji od parova polja i vrijednosti (MongoDB dokumenti su usporedivi s JSON objektima).

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

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

Važno: trebali biste imati 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: Instalirajte MongoDB na Ubuntu 18.04

1. Službena spremišta softverskih paketa Ubuntua dolaze s najnovijom verzijom MongoDB i mogu se jednostavno instalirati pomoću APT upravitelja paketa.

Prvo ažurirajte predmemoriju sistemskog softverskog paketa kako biste imali najnoviju verziju popisa repozitorija.

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 ste ga uspješno instalirali, usluga MongoDB pokrenut će se automatski putem systemd-a i proces sluša na portu 27017. Njegov status možete provjeriti pomoću naredbe systemctl kao što je prikazano.

sudo systemctl status mongodb

Korak 2: Upravljanje MongoDB uslugom

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

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

sudo systemctl stop mongodb	

Za pokretanje usluge MongoDB upišite sljedeću naredbu.

sudo systemctl start mongodb

Za ponovno pokretanje usluge MongoDB upišite sljedeću naredbu.

sudo systemctl restart mongodb	

Da biste onemogućili automatski pokrenutu uslugu MongoDB, upišite sljedeću naredbu.

sudo systemctl disable mongodb	

Da biste ponovno omogućili MongoDB uslugu, upišite sljedeću naredbu.

sudo systemctl enable mongodb	

Korak 3: Omogućite udaljeni MongoDB pristup na vatrozidu

5. Prema zadanim postavkama MongoDB radi na portu 27017, kako bi se omogućio pristup s bilo kojeg mjesta koje možete koristiti.

sudo ufw allow 27017

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

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

6. Prema zadanim postavkama priključak 27017 sluša samo lokalnu adresu 127.0.0.1. Da biste omogućili udaljene MongoDB veze, trebate dodati IP adresu vašeg poslužitelja u konfiguracijsku datoteku /etc/mongodb.conf kao što je prikazano.

bind_ip = 127.0.0.1,your_server_ip
#port = 27017

Spremite datoteku, izađite iz uređivača i ponovno pokrenite MongoDB.

sudo systemctl restart mongodb

Korak 4: Stvorite korijenskog korisnika i lozinku MongoDB baze podataka

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

mongo 

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

> show dbs

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

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

Morate stvoriti korisničkog administratora (analogno root korisniku pod MySQL/MariaDB) u administratorskoj bazi podataka. Ovaj korisnik može upravljati korisnicima i ulogama kao što je kreiranje korisnika, dodjeljivanje ili opoziv uloga korisnicima te stvaranje ili izmjena prilagođenih uloga.

Najprije se prebacite na administratorsku bazu podataka, zatim stvorite korijenskog korisnika pomoću sljedećih naredbi.

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

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

10. Instanca mongodb pokrenuta je bez opcije naredbenog retka --auth. Morate omogućiti autentifikaciju korisnika uređivanjem /lib/systemd/system/mongod.service datoteke, prvo otvorite datoteku za uređivanje na ovaj 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 u sljedeće:

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

Spremite datoteku i izađite iz nje.

11. 8. Nakon što napravite promjene u konfiguracijskoj datoteci, pokrenite 'systemctl daemon-reload' za ponovno učitavanje jedinica i ponovno pokrenite uslugu MongoDB i provjerite njezin status na sljedeći način.

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

12. Sada kada se pokušate spojiti na mongodb, morate se autentificirati kao MongoDB korisnik. Na primjer:

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

Napomena: Ne preporučuje se unos lozinke u naredbeni redak jer će biti pohranjena u datoteci povijesti ljuske i kasnije ju napadač može vidjeti.

To je sve! MongoDB je moderni No-SQL sustav upravljanja bazom podataka otvorenog koda koji pruža visoku izvedbu, visoku dostupnost i automatsko skaliranje.

U ovom smo članku objasnili kako instalirati i započeti s MongoDB u Ubuntu 18.04. Ako imate bilo kakvih pitanja, upotrijebite obrazac za komentare u nastavku da biste nas kontaktirali.