I denne bloggen har vi snakket om noen databasesystemer, blant dem de mest populære er MariaDB og MySQL, siden de er systemene som vanligvis er inkludert i Xampp eller Lampp. Denne gangen skal vi snakke om et annet system som er MongoDB.
MongoDB er et open source-dokument orientert NoSQL-databasesystem, Dette er et moderne dokumentdatabasehåndteringssystem designet for data med høy ytelse, høy tilgjengelighet, samt automatisk skalering, basert på teknologien til NoSQL-teknikken.
I stedet for å lagre data i tabeller slik det gjøres i relasjonsdatabaser, lagrer MongoDB datastrukturer i et dokument, som er en datastruktur som består av felt- og verdipar (MongoDB-dokumenter er sammenlignbare med JSON-objekter).
Fordi den gir høy ytelse og gode skalerbarhetsegenskaper, blir den brukt til å bygge moderne applikasjoner som krever kraftige, oppdragskritiske og svært tilgjengelige databaser.
MongoDB installasjon på Ubuntu
For å installere dette databasesystemet på systemet vårt, Vi trenger bare å åpne en terminal og utføre følgende kommando i den:
sudo apt install mongodb
Installasjonen er ferdig, MongoDB-tjenesten starter automatisk via systemd og prosessen vil kjøre på port 27017. Du kan sjekke statusen ved å bruke kommandoen:
sudo systemctl status mongodb
Hvis ikke, kan vi tvinge starten med denne kommandoen:
sudo systemctl start mongodb
Aktiverer eksterne tilkoblinger til MongoDB
MongoDB-databasesystemet bruker som standard port 27017 som vi må åpne For å akseptere eksterne tilkoblinger, aktiverer vi det bare med følgende kommando.
sudo ufw allow 27017
Som standard er port 27017 bare tilgjengelig fra den lokale adressen 127.0.0.1. For å tillate eksterne tilkoblinger til MongoDB, er det nødvendig å legge til serverens IP-adresse i filen /etc/mongodb.conf
Bare rediger den med:
sudo nano
Og vi kan se noe som ligner på dette:
bind_ip = 127.0.0.1, your_server_ip #port = 27,017
Som vi redigerer med dataene fra serveren vår.
Når du gir tilgang til MongoDB fra overalt, gir det ubegrenset tilgang til dataene i databasen. Derfor er det bedre å gi tilgang til den stedsspesifikke IP-adressen til MongoDB-porten.
sudo ufw allow from your_server_IP/32 to any port 27017 sudo ufw status
Når dette er gjort, er det nok å starte tjenesten på nytt slik at de nye endringene lastes inn i begynnelsen, vi gjør dette med:
sudo systemctl restart mongodb
Opprett en bruker i MongoDB med passord
Som standard har databasen ganske enkel tilgang, så for å forsterke dette kan vi opprette en bruker med passord.
MongoDB bruker SCRAM-autentiseringsmekanismen som standard. Ved å bruke SCRAM på systemet verifiseres de oppgitte brukerlegitimasjonene mot brukernavnet, passordet og autentiseringsdatabasen.
Bare start databasekonsollen med følgende kommando:
Mongo
Vi kan lage en liste over eksisterende databaser med:
show dbs
Vi kan opprette en bruker som lar oss administrere brukere og funksjoner som å opprette brukere, tildele eller tilbakekalle brukerroller, og opprette eller endre tollroller.
Bare skriv
use admin
Og vi oppretter brukeren med følgende kommando, hvor vi erstatter navnet på brukeren "root" og passordet "passord", med tilgangsfakta som vi anser passende.
db.createUser({user:"root", pwd:"password", roles:[{role:"root", db:"admin"}]})
Når dette er gjort, må vi aktivere godkjenningsmetoden for dette skal vi redigere følgende fil:
sudo nano /lib/systemd/system/mongodb.service
Og vi vil se etter neste linje:
ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Og rediger slik at det blir som følger:
ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Nå vi bare starter på nytt i databasen
systemctl daemon-reload sudo systemctl restart mongodb sudo systemctl status mongodb
Y Vi tester autentiseringsmetoden med:
mongo -u "usuario" -p --authenticationDatabase "contraseña"
Hjelp meg med denne FEILEN.
2021-03-24T21: 33: 16.233 + 0000 E SPØRSMÅL [thread1] Feil: listeDatabaser mislyktes: {
«Ok»: 0,
"Errmsg": "ikke autorisert av admin til å utføre kommandoen {listDatabases: 1.0, $ db: \" admin \ "}",
"Kode": 13,
"CodeName": "Uautorisert"
}:
_getErrorWithCode@src/mongo/shell/utils.js: 25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js: 65: 1
shellHelper.show@src/mongo/shell/utils.js: 816: 19
shellHelper@src/mongo/shell/utils.js: 706: 15
@ (shellhelp2): 1: 1