In deze blog hebben we het gehad over enkele databasesystemen, waarvan de meest populaire MariaDB en MySQL zijn, aangezien dit de systemen zijn die gewoonlijk in Xampp of Lampp worden opgenomen. Deze keer gaan we erover praten een ander systeem dat is MongoDB.
MongoDB is een open source documentgeoriënteerd NoSQL-databasesysteem, Dit is een modern documentdatabasebeheersysteem ontworpen voor krachtige gegevenspersistentie, hoge beschikbaarheid en automatische schaling op basis van de technologie van de NoSQL-techniek.
In plaats van gegevens in tabellen op te slaan zoals in relationele databases, slaat MongoDB gegevensstructuren op in een document, een datastructuur die bestaat uit veld- en waardeparen (MongoDB-documenten zijn vergelijkbaar met JSON-objecten).
Omdat het hoge prestaties en uitstekende schaalbaarheidseigenschappen biedt, wordt het gebruikt om moderne applicaties te bouwen die krachtige, bedrijfskritische en zeer beschikbare databases vereisen.
MongoDB-installatie op Ubuntu
Om dit databasesysteem op ons systeem te installeren, We hoeven alleen een terminal te openen en de volgende opdracht erin uit te voeren:
sudo apt install mongodb
Installatie voltooid, MongoDB-service wordt automatisch gestart via systemd en het proces wordt uitgevoerd op poort 27017. Je kunt de status controleren met de volgende opdracht:
sudo systemctl status mongodb
Zo niet, dan kunnen we de start forceren met deze opdracht:
sudo systemctl start mongodb
Externe verbindingen met MongoDB mogelijk maken
Het MongoDB-databasesysteem gebruikt standaard poort 27017 die we moeten openen Om externe verbindingen te accepteren, schakelen we het alleen in met het volgende commando.
sudo ufw allow 27017
Standaard is poort 27017 alleen toegankelijk vanaf het lokale adres 127.0.0.1. Om externe verbindingen met MongoDB mogelijk te maken, is het nodig om het IP-adres van de server aan het bestand toe te voegen /etc/mongodb.conf
Bewerk het gewoon met:
sudo nano
En we kunnen iets soortgelijks zien:
bind_ip = 127.0.0.1, your_server_ip #port = 27,017
Die we bewerken met de gegevens van onze server.
Het geeft overal toegang tot MongoDB en geeft onbeperkte toegang tot de gegevens in de database. Daarom is het beter om toegang te geven tot het locatiespecifieke standaard IP-adres van de MongoDB-poort.
sudo ufw allow from your_server_IP/32 to any port 27017 sudo ufw status
Zodra dit is gebeurd, is het voldoende om de service opnieuw te starten zodat de nieuwe wijzigingen aan het begin worden geladen, we doen dit met:
sudo systemctl restart mongodb
Maak een gebruiker in MongoDB met wachtwoord
Standaard heeft de database vrij eenvoudige toegang, dus om dit te versterken kunnen we een gebruiker met een wachtwoord aanmaken.
MongoDB gebruikt het SCRAM-verificatiemechanisme standaard. Door SCRAM op het systeem te gebruiken, worden de verstrekte gebruikersreferenties vergeleken met de gebruikersnaam, het wachtwoord en de verificatiedatabase.
Start gewoon de databaseconsole met de volgende opdracht:
Mongo
We kunnen een lijst maken van de bestaande databases met:
show dbs
We kunnen een gebruiker aanmaken waarmee we gebruikers en functies kunnen beheren zoals het aanmaken van gebruikers, het toekennen of intrekken van gebruikersrollen, en het aanmaken of wijzigen van douanerollen.
Typ gewoon
use admin
En we maken de gebruiker aan met de volgende opdracht, waar we de naam van de gebruiker "root" en het wachtwoord "wachtwoord" vervangen door de toegangscriteria die wij geschikt achten.
db.createUser({user:"root", pwd:"password", roles:[{role:"root", db:"admin"}]})
Zodra dit is gebeurd, moeten we de authenticatiemethode inschakelen hiervoor gaan we het volgende bestand bewerken:
sudo nano /lib/systemd/system/mongodb.service
En we gaan op zoek naar de volgende regel:
ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
En bewerk zodat het als volgt is:
ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
nu we herstarten gewoon in de database
systemctl daemon-reload sudo systemctl restart mongodb sudo systemctl status mongodb
Y We testen de authenticatiemethode met:
mongo -u "usuario" -p --authenticationDatabase "contraseña"
Help me met deze FOUT.
2021-03-24T21: 33: 16.233 + 0000 E QUERY [thread1] Fout: lijstDatabases mislukt: {
«Ok»: 0,
"Errmsg": "niet geautoriseerd op admin om commando {listDatabases: 1.0, $ db: \" admin \ "}" uit te voeren,
"Code": 13,
"CodeName": "Niet geautoriseerd"
_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