I denne blog har vi talt om nogle databasesystemer, blandt hvilke de mest populære er MariaDB og MySQL, da de er de systemer, der normalt er inkluderet i Xampp eller Lampp. Denne gang skal vi tale om et andet system, som er MongoDB.
MongoDB er et open source-dokumentorienteret NoSQL-databasesystem, Dette er et moderne dokumentdatabasehåndteringssystem designet til højtydende datapretention høj tilgængelighed samt automatisk skalering baseret på teknologien i NoSQL-teknikken.
I stedet for at gemme data i tabeller, som det gøres i relationsdatabaser, gemmer MongoDB datastrukturer i et dokument, som er en datastruktur, der består af felt- og værdipar (MongoDB-dokumenter kan sammenlignes med JSON-objekter).
Fordi det giver høj ydeevne og fremragende skalerbarhedsegenskaber, bruges det til at opbygge moderne applikationer, der kræver kraftige, missionskritiske og meget tilgængelige databaser.
MongoDB installation på Ubuntu
For at installere dette databasesystem på vores system, Vi skal kun åbne en terminal og udføre følgende kommando i den:
sudo apt install mongodb
Installation udført, MongoDB-tjenesten starter automatisk via systemd og processen kører på port 27017. Du kan kontrollere dens status ved hjælp af kommandoen:
sudo systemctl status mongodb
Hvis ikke, kan vi tvinge starten med denne kommando:
sudo systemctl start mongodb
Aktivering af fjernforbindelser til MongoDB
MongoDB-databasesystemet bruger som standard port 27017, som vi skal åbne For at acceptere fjernforbindelser aktiverer vi det kun med følgende kommando.
sudo ufw allow 27017
Som standard har port 27017 kun adgang til den lokale adresse 127.0.0.1. For at tillade fjernforbindelser til MongoDB er det nødvendigt at tilføje serverens IP-adresse i filen /etc/mongodb.conf
Bare rediger det med:
sudo nano
Og vi kan se noget der ligner dette:
bind_ip = 127.0.0.1, your_server_ip #port = 27,017
Hvilket vi redigerer med dataene fra vores server.
Tillader adgang til MongoDB overalt, det giver ubegrænset adgang til dataene i databasen. Derfor er det bedre at give adgang til den stedsspecifikke standard-IP-adresse for 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 at genstarte tjenesten, så de nye ændringer indlæses i starten, dette gør vi med:
sudo systemctl restart mongodb
Opret en bruger i MongoDB med adgangskode
Som standard har databasen ret enkel adgang, så for at forstærke dette kan vi oprette en bruger med en adgangskode.
MongoDB bruger SCRAM-godkendelsesmekanismen som standard. Brug af SCRAM på systemet verificerer de leverede brugeroplysninger i forhold til brugernavnet, adgangskoden og godkendelsesdatabasen.
Start bare databasekonsollen med følgende kommando:
Mongo
Vi kan oprette en liste over de eksisterende databaser med:
show dbs
Vi kan oprette en bruger, der giver os mulighed for at administrere brugere og funktioner såsom oprettelse af brugere, tildeling eller tilbagekaldelse af brugerroller og oprettelse eller ændring af toldroller.
Bare skriv
use admin
Og vi opretter brugeren med følgende kommando, hvor vi erstatter navnet på brugeren "root" og adgangskoden "password", med de adgangsfunktioner, som vi finder passende.
db.createUser({user:"root", pwd:"password", roles:[{role:"root", db:"admin"}]})
Når dette er gjort, skal vi aktivere godkendelsesmetoden til dette skal vi redigere følgende fil:
sudo nano /lib/systemd/system/mongodb.service
Og vi vil kigge efter den næste linje:
ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Og rediger, så det er som følger:
ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Nu vi genstarter simpelthen i databasen
systemctl daemon-reload sudo systemctl restart mongodb sudo systemctl status mongodb
Y Vi tester godkendelsesmetoden med:
mongo -u "usuario" -p --authenticationDatabase "contraseña"
Hjælp mig med denne FEJL.
2021-03-24T21: 33: 16.233 + 0000 E SPØRGSMÅL [thread1] Fejl: listeDatabaser mislykkedes: {
«Ok»: 0,
"Errmsg": "ikke autoriseret af admin til at udføre kommando {listDatabases: 1.0, $ db: \" admin \ "}",
"Kode": 13,
"CodeName": "Uautoriseret"
}:
_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