I den här bloggen har vi pratat om några databassystem, bland vilka de mest populära är MariaDB och MySQL, eftersom de är de system som vanligtvis ingår i Xampp eller Lampp. Den här gången ska vi prata om ett annat system som är MongoDB.
MongoDB är ett öppet dokument orienterat NoSQL-databassystem, Detta är ett modernt dokumenthanteringssystem utformat för högpresterande datatålighet, hög tillgänglighet, liksom automatisk skalning, baserat på tekniken för NoSQL-tekniken.
Istället för att spara data i tabeller som det görs i relationsdatabaser, sparar MongoDB datastrukturer i ett dokument, som är en datastruktur som består av fält- och värdepar (MongoDB-dokument är jämförbara med JSON-objekt).
Eftersom den ger hög prestanda och utmärkta skalbarhetsegenskaper används den för att bygga moderna applikationer som kräver kraftfulla, uppdragskritiska och mycket tillgängliga databaser.
MongoDB-installation på Ubuntu
För att installera detta databassystem på vårt system, Vi behöver bara öppna en terminal och utföra följande kommando i den:
sudo apt install mongodb
Installationen klar, MongoDB-tjänsten startar automatiskt via systemd och processen körs på port 27017. Du kan kontrollera dess status med kommandot:
sudo systemctl status mongodb
Om inte, kan vi tvinga starten med det här kommandot:
sudo systemctl start mongodb
Aktivera fjärranslutningar till MongoDB
MongoDB-databassystemet använder som standard port 27017 som vi måste öppna För att acceptera fjärranslutningar aktiverar vi det bara med följande kommando.
sudo ufw allow 27017
Som standard kan port 27017 endast nås från den lokala adressen 127.0.0.1. För att tillåta fjärranslutningar till MongoDB är det nödvändigt att lägga till serverns IP-adress i filen /etc/mongodb.conf
Redigera det bara med:
sudo nano
Och vi kan se något liknande det här:
bind_ip = 127.0.0.1, your_server_ip #port = 27,017
Som vi redigerar med data från vår server.
Tillåter åtkomst till MongoDB var som helst, det ger obegränsad åtkomst till data i databasen. Därför är det bättre att ge åtkomst till den platsspecifika IP-adressen för MongoDB-porten.
sudo ufw allow from your_server_IP/32 to any port 27017 sudo ufw status
När detta är klart räcker det att starta om tjänsten så att de nya ändringarna laddas i början, detta gör vi med:
sudo systemctl restart mongodb
Skapa en användare i MongoDB med lösenord
Som standard har databasen ganska enkel åtkomst, så för att förstärka detta kan vi skapa en användare med ett lösenord.
MongoDB använder SCRAM-autentiseringsmekanismen som standard. Användning av SCRAM i systemet verifierar de medföljande användaruppgifterna mot användarnamn, lösenord och autentiseringsdatabas.
Starta bara databaskonsolen med följande kommando:
Mongo
Vi kan göra en lista över befintliga databaser med:
show dbs
Vi kan skapa en användare som gör att vi kan hantera användare och funktioner som att skapa användare, bevilja eller återkalla användarroller och skapa eller ändra tullroller.
Bara Skriv
use admin
Och vi skapar användaren med följande kommando, där vi ersätter namnet på användaren "root" och lösenordet "lösenord", med de åtkomstfunktioner som vi anser lämpliga.
db.createUser({user:"root", pwd:"password", roles:[{role:"root", db:"admin"}]})
När detta är gjort måste vi aktivera autentiseringsmetoden för detta kommer vi att redigera följande fil:
sudo nano /lib/systemd/system/mongodb.service
Och vi kommer att leta efter nästa rad:
ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Och den redigera så att det blir som följer:
ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Nu vi startar helt enkelt om i databasen
systemctl daemon-reload sudo systemctl restart mongodb sudo systemctl status mongodb
Y Vi testar autentiseringsmetoden med:
mongo -u "usuario" -p --authenticationDatabase "contraseña"
Hjälp mig med detta FEL.
2021-03-24T21: 33: 16.233 + 0000 E FRÅGA [tråd1] Fel: listaDatabaser misslyckades: {
«Ok»: 0,
"Errmsg": "inte behörig för admin att utföra kommandot {listDatabases: 1.0, $ db: \" admin \ "}",
"Kod": 13,
"CodeName": "Obehörig"
}:
_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