Tässä blogissa olemme puhuneet joistakin tietokantajärjestelmistä, joista suosituimpia ovat MariaDB ja MySQL, koska ne ovat järjestelmiä, jotka yleensä sisältyvät Xamppiin tai Lamppiin. Tällä kertaa puhumme toinen järjestelmä, joka on MongoDB.
MongoDB on avoimen lähdekoodin asiakirjapainotteinen NoSQL-tietokantajärjestelmä, Tämä on nykyaikainen asiakirjatietokannan hallintajärjestelmä, joka on suunniteltu korkean suorituskyvyn tietojen pysyvyyteen, korkea käytettävyys sekä automaattinen skaalaus NoSQL-tekniikan tekniikkaan perustuen.
Sen sijaan, että tallennettaisiin tietoja taulukoihin, kuten se tehdään relaatiotietokannoissa, MongoDB tallentaa tietorakenteet asiakirjaan, joka on kenttä- ja arvopareista koostuva tietorakenne (MongoDB-asiakirjat ovat verrattavissa JSON-objekteihin).
Koska se tarjoaa korkean suorituskyvyn ja erinomaiset skaalautuvuusominaisuudet, sitä käytetään rakentamaan moderneja sovelluksia, jotka edellyttävät tehokkaita, tehtäväkriittisiä ja erittäin saatavilla olevia tietokantoja.
MongoDB-asennus Ubuntuun
Asentaaksesi tämän tietokantajärjestelmän järjestelmäämme, Meidän on vain avattava pääte ja suoritettava seuraava komento siinä:
sudo apt install mongodb
Asennus valmis, MongoDB-palvelu käynnistyy automaattisesti systemd: n kautta ja prosessi suoritetaan portissa 27017. Voit tarkistaa sen tilan komennolla:
sudo systemctl status mongodb
Jos ei, voimme pakottaa aloituksen tällä komennolla:
sudo systemctl start mongodb
Etäyhteyksien ottaminen käyttöön MongoDB: hen
MongoDB-tietokantajärjestelmä käyttää oletuksena porttia 27017, joka meidän on avattava Etäyhteyksien hyväksymiseksi otamme sen käyttöön vain seuraavalla komennolla.
sudo ufw allow 27017
Porttiin 27017 pääsee oletusarvoisesti vain paikallisesta osoitteesta 127.0.0.1. Etäyhteyksien salliminen MongoDB: hen on lisättävä palvelimen IP-osoite tiedostoon /etc/mongodb.conf
Muokkaa sitä vain:
sudo nano
Ja voimme nähdä jotain vastaavaa tähän:
bind_ip = 127.0.0.1, your_server_ip #port = 27,017
Muokkaamme palvelimeltamme saatujen tietojen kanssa.
Sallimalla pääsyn MongoDB: hen kaikkialta, se antaa rajoittamattoman pääsyn tietokannan tietoihin. Siksi on parempi antaa pääsy MongoDB-portin sijaintikohtaiseen oletus-IP-osoitteeseen.
sudo ufw allow from your_server_IP/32 to any port 27017 sudo ufw status
Kun tämä on tehty, riittää, että palvelu käynnistetään uudelleen niin, että uudet muutokset ladataan alussa, tämän teemme:
sudo systemctl restart mongodb
Luo käyttäjä MongoDB: ssä salasanalla
Oletuksena tietokannalla on melko yksinkertainen pääsy, joten tämän vahvistamiseksi voimme luoda käyttäjän salasanalla.
MongoDB käyttää SCRAM-todennusmekanismia oletuksena. SCRAM-järjestelmän käyttäminen tarkistaa toimitetut käyttäjän tunnistetiedot käyttäjänimen, salasanan ja todennustietokannan kanssa.
Käynnistä vain tietokantakonsoli seuraavalla komennolla:
Mongo
Voimme tehdä luettelon olemassa olevista tietokannoista seuraavilla tavoilla:
show dbs
Voimme luoda käyttäjän, jonka avulla voimme hallita käyttäjiä ja toimintoja kuten käyttäjien luominen, käyttäjäroolien myöntäminen tai peruuttaminen ja tulliroolien luominen tai muokkaaminen.
Kirjoita vain
use admin
Ja luomme käyttäjän seuraavalla komennolla, jossa korvataan käyttäjän nimi "root" ja salasana "salasana" sopivilla pitämillämme käyttöoikeuksilla.
db.createUser({user:"root", pwd:"password", roles:[{role:"root", db:"admin"}]})
Kun tämä on tehty, meidän on otettava käyttöön todennusmenetelmä tätä varten aiomme muokata seuraavaa tiedostoa:
sudo nano /lib/systemd/system/mongodb.service
Ja etsimme seuraavaa riviä:
ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Ja muokkaa niin, että se on seuraava:
ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Nyt käynnistämme yksinkertaisesti uudestaan tietokannassa
systemctl daemon-reload sudo systemctl restart mongodb sudo systemctl status mongodb
Y Testaamme todennusmenetelmän seuraavilla tavoilla:
mongo -u "usuario" -p --authenticationDatabase "contraseña"
Auta minua tämän virheen kanssa.
2021-03-24T21: 33: 16.233 + 0000 E QUERY [thread1] Virhe: luetteloTietokannat epäonnistui: {
«Ok»: 0,
"Errmsg": "ei ole järjestelmänvalvojan valtuuttama suorittamaan komentoa {listDatabases: 1.0, $ db: \" admin \ "}",
"Koodi": 13,
"CodeName": "Luvaton"
}:
_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