Kako namestiti MongoDB na Ubuntu 18.04


MongoDB je odprtokodni, sodoben sistem za upravljanje baz dokumentov, zasnovan za visoko zmogljivost obstojnosti podatkov, visoko razpoložljivost in samodejno skaliranje, ki temelji na najsodobnejši tehnologiji NoSQL. Pod MongoDB je zapis dokument, ki je podatkovna struktura, ki jo sestavljajo pari polja in vrednosti (dokumenti MongoDB so primerljivi s predmeti JSON).

Ker zagotavlja visoko zmogljivost in odlične funkcije razširljivosti, se uporablja za izdelavo sodobnih aplikacij, ki zahtevajo zmogljive, kritično pomembne in visoko razpoložljive baze podatkov.

V tem članku bomo razložili, kako namestiti MongoDB, upravljati njegovo storitev in nastaviti osnovno preverjanje pristnosti na Ubuntu 18.04.

Pomembno: Upoštevajte, da razvijalci MongoDB ponujajo samo pakete za 64-bitne LTS (dolgoročna podpora) izdaje Ubuntu, kot so 14.04 LTS (zanesljiv), 16.04 LTS (xenial) itd.

1. korak: Namestitev MongoDB na Ubuntu 18.04

1. Uradna skladišča programskih paketov Ubuntu so opremljena z najnovejšo različico MongoDB in jih je mogoče enostavno namestiti z upraviteljem paketov APT.

Najprej posodobite predpomnilnik sistemske programske opreme, da boste imeli najnovejšo različico seznamov skladišč.

$ sudo apt update

2. Nato namestite paket MongoDB, ki vključuje več drugih paketov, kot so mongo-tools, mongodb-clients, mongodb-server in mongodb-server-core.

$ sudo apt install mongodb

3. Ko ga uspešno namestite, se bo storitev MongoDB samodejno zagnala prek systemd in postopek posluša na vratih 27017. Njegovo stanje lahko preverite z ukazom systemctl, kot je prikazano.

$ sudo systemctl status mongodb

2. korak: Upravljanje storitve MongoDB

4. Namestitev MongoDB je storitev systemd in jo je mogoče enostavno upravljati s standardnimi ukazi systemd, kot je prikazano.

Če želite ustaviti izvajanje storitve MongoDB, zaženite naslednji ukaz.

$ sudo systemctl stop mongodb	

Če želite zagnati storitev MongoDB, vnesite naslednji ukaz.

$ sudo systemctl start mongodb

Če želite znova zagnati storitev MongoDB, vnesite naslednji ukaz.

$ sudo systemctl restart mongodb	

Če želite onemogočiti samodejno zagnano storitev MongoDB, vnesite naslednji ukaz.

$ sudo systemctl disable mongodb	

Če želite znova omogočiti storitev MongoDB, vnesite naslednji ukaz.

$ sudo systemctl enable mongodb	

3. korak: Omogočite oddaljeni dostop do MongoDB v požarnem zidu

5. MongoDB privzeto deluje na vratih 27017 in omogoča dostop od koder koli lahko.

$ sudo ufw allow 27017

Toda omogočanje dostopa do MongoDB od vsepovsod omogoča neomejen dostop do podatkovnih zbirk. Zato je bolje, da z naslednjim ukazom omogočite dostop do določene lokacije naslova IP do privzetih vrat MongoDB.

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

6. Privzeto vrata 27017 poslušajo samo na lokalnem naslovu 127.0.0.1. Če želite dovoliti oddaljene povezave MongoDB, morate dodati naslov IP strežnika v konfiguracijsko datoteko /etc/mongodb.conf, kot je prikazano.

bind_ip = 127.0.0.1,your_server_ip
#port = 27017

Shranite datoteko, zapustite urejevalnik in znova zaženite MongoDB.

$ sudo systemctl restart mongodb

4. korak: Ustvarite korenskega uporabnika in geslo baze podatkov MongoDB

7. MongoDB ima privzeto onemogočeno preverjanje pristnosti uporabnika, zato se zažene brez nadzora dostopa. Če želite zagnati lupino mongo, zaženite naslednji ukaz.

$ mongo 

8. Ko se povežete z lupino mongo, lahko z naslednjim ukazom navedete vse razpoložljive baze podatkov.

> show dbs

9. Omogočite nadzor dostopa pri uvajanju MongoDB za uveljavljanje preverjanja pristnosti; od uporabnikov zahteva, da se identificirajo vsakič, ko se povežejo s strežnikom baz podatkov.

MongoDB privzeto uporablja mehanizem preverjanja pristnosti Salred Challenge Response Authentication Mechanism (SCRAM). MongoDB s SCRAM -om preveri uporabniške poverilnice glede na uporabnikovo ime, geslo in bazo podatkov za preverjanje pristnosti (baza podatkov, v kateri je bil uporabnik ustvarjen, skupaj z imenom uporabnika služi za identifikacijo uporabnika).

V skrbniški bazi morate ustvariti skrbnika uporabnika (analogno korenskemu uporabniku pod MySQL/MariaDB). Ta uporabnik lahko upravlja uporabnike in vloge, kot so ustvarjanje uporabnikov, dodelitev ali preklic vlog uporabnikom ter ustvarjanje ali spreminjanje carinskih vlog.

Najprej preklopite na skrbniško bazo podatkov, nato z naslednjimi ukazi ustvarite korenskega uporabnika.

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

Zdaj zapustite lupino mongo, da omogočite preverjanje pristnosti, kot je opisano v nadaljevanju.

10. Primerek mongodb se je zagnal brez možnosti ukazne vrstice --auth . Omogočiti morate preverjanje pristnosti uporabnikov z urejanjem datoteke /lib/systemd/system/mongod.service, najprej odprite datoteko za tako urejanje.

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

V razdelku [Service] config poiščite parameter ExecStart.

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

Spremenite ga v naslednjega:

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

Shranite datoteko in jo zaprite.

11. 8. Po spremembi konfiguracijske datoteke zaženite 'systemctl daemon-reload', da znova naložite enote in znova zaženete storitev MongoDB ter preverite njeno stanje, kot sledi.

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

12. Ko se poskušate povezati z mongodb, se morate overiti kot uporabnik MongoDB. Na primer:

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

Opomba: V ukazno vrstico ni priporočljivo vnašati gesla, ker bo shranjeno v datoteki zgodovine lupine in si ga bo lahko napadalec pozneje ogledal.

To je vse! MongoDB je odprtokodni, sodoben sistem za upravljanje baz podatkov brez SQL, ki zagotavlja visoko zmogljivost, visoko razpoložljivost in samodejno skaliranje.

V tem članku smo razložili, kako namestiti in začeti z MongoDB v Ubuntu 18.04. Če imate kakršna koli vprašanja, nas kontaktirajte s spodnjim obrazcem za komentar.