Si të instaloni MongoDB në CentOS 7


Prezantimi

MongoDB është një bazë të dhënash e orientuar drejt dokumenteve që është falas dhe me burim të hapur. Ajo klasifikohet si një bazë të dhënash NoSQL sepse nuk mbështetet në një strukturë tradicionale të bazës së të dhënave relacionale të bazuar në tabelë. Në vend të kësaj, ai përdor dokumente të ngjashme me JSON me skema dinamike. Ndryshe nga bazat e të dhënave relacionale, MongoDB nuk kërkon një skemë të paracaktuar përpara se të shtoni të dhëna në një bazë të dhënash. Ju mund ta ndryshoni skemën në çdo kohë dhe aq shpesh sa është e nevojshme pa pasur nevojë të konfiguroni një bazë të dhënash të re me një skemë të përditësuar.

Në këtë tutorial, ju do të instaloni MongoDB Community Edition në një server CentOS 7.

Parakushtet

Përpara se të ndiqni këtë tutorial, sigurohuni që ta keni

  • Një server CentOS 7 me një përdorues paroot sudo. Për udhëzime, ju lutemi shikoni tutorialin tonë, Initial Server Setup with CentOS 7.

Hapi 1 – Shtimi i depove MongoDB

Paketa mongodb-org nuk ekziston brenda depove të paracaktuara për CentOS. Sidoqoftë, MongoDB mban një depo të dedikuar. Le ta shtojmë atë në serverin tonë.

Me redaktorin vi, krijoni një skedar .repo për yum, mjeti i menaxhimit të paketave për CentOS:

  1. sudo vi /etc/yum.repos.d/mongodb-org.repo

Më pas, vizitoni seksionin Install on Red Hat të dokumentacionit të MongoDB dhe shtoni informacionin e depove për lëshimin më të fundit të qëndrueshëm në skedar:

[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc

Ruani ndryshimet në skedar duke shtypur tastin ESC, më pas shkruani :wq dhe shtypni ENTER.

Përpara se të vazhdoni, duhet të verifikoni që depoja e MongoDB ekziston brenda programit yum. Komanda repolist shfaq një listë të depove të aktivizuara:

  1. yum repolist
Output
. . . repo id repo name base/7/x86_64 CentOS-7 - Base extras/7/x86_64 CentOS-7 - Extras mongodb-org-6.0/7/x86_64 MongoDB Repository updates/7/x86_64 CentOS-7 - Updates . . .

Me Depoja e MongoDB në vend, mund të vazhdoni me instalimin.

Hapi 2 – Instalimi i MongoDB

Ju mund të instaloni paketën mongodb-org nga depoja e palëve të treta duke përdorur mjetin yum.

  1. sudo yum install mongodb-org

Ka dy kërkesa A është në rregull [y/N]:. E para lejon instalimin e paketave MongoDB dhe e dyta importon një çelës GPG. Botuesi i MongoDB nënshkruan softuerin e tij dhe yum përdor një çelës për të konfirmuar integritetin e paketave të shkarkuara. Në çdo kërkesë, shkruani Y dhe më pas shtypni tastin ENTER.

Më pas, filloni shërbimin MongoDB me mjetin systemctl:

  1. sudo systemctl start mongod

Edhe pse ne nuk do t'i përdorim ato në këtë tutorial, ju gjithashtu mund të ndryshoni gjendjen e shërbimit MongoDB me komandat reload dhe stop.

Komanda reload kërkon që procesi mongod të lexojë skedarin e konfigurimit, /etc/mongod.conf dhe të zbatojë çdo ndryshim pa kërkuar rinisje.

  1. sudo systemctl reload mongod

Komanda stop ndalon të gjitha proceset e ekzekutuara mongod.

  1. sudo systemctl stop mongod

Shërbimi systemctl nuk dha një rezultat pas ekzekutimit të komandës start, por mund të kontrolloni nëse shërbimi filloi duke parë fundin e mongod.log skedari me komandën tail:

  1. sudo tail /var/log/mongodb/mongod.log
Output
. . . [initandlisten] waiting for connections on port 27017

Një rezultat i pritjes për një lidhje konfirmon që MongoDB ka filluar me sukses dhe mund të hyni në serverin e bazës së të dhënave me MongoDB Shell:

  1. mongo

Shënim: Kur keni nisur MongoDB Shell, mund të keni parë një paralajmërim si ky:

** PARALAJMËRIM:** kufijtë e butë janë shumë të ulët. kufijtë e vendosur në 4096 procese, 64000 skedarë. Numri i proceseve duhet të jetë së paku 32000 : 0,5 herë numri i skedarëve.

MongoDB është një aplikacion i filetuar. Ai mund të nisë procese shtesë për të përballuar ngarkesën e tij të punës. Paralajmërimi thotë se që MongoDB të jetë më efektiv, numri i proceseve që është i autorizuar të rrotullohet duhet të jetë sa gjysma e numrit të skedarëve që mund të ketë të hapur në çdo kohë. Për të zgjidhur paralajmërimin, ndryshoni vlerën kufizuese të butë të proceseve për mongod duke redaktuar skedarin 20-nproc.conf:

  1. sudo vi /etc/security/limits.d/20-nproc.conf

Shtoni rreshtin e mëposhtëm në fund të skedarit:

. . .
mongod soft nproc 32000

Sigurohuni që t'i ruani ndryshimet duke shtypur tastin ESC, më pas shkruani :wq dhe shtypni ENTER.

Që kufiri i ri të jetë i disponueshëm për MongoDB, rinisni atë duke përdorur mjetin systemctl:

  1. sudo systemctl restart mongod

Më pas, kur lidheni me MongoDB Shell, paralajmërimi duhet të pushojë së ekzistuari.

Për të mësuar se si të ndërveproni me MongoDB nga guaska, mund të rishikoni daljen e metodës db.help() e cila ofron një listë metodash për objektin db.

  1. db.help()
Output
DB methods: db.adminCommand(nameOrDocument) - switches to 'admin' db, and runs command [ just calls db.runCommand(...) ] db.auth(username, password) db.cloneDatabase(fromhost) db.commandHelp(name) returns the help for the command db.copyDatabase(fromdb, todb, fromhost) db.createCollection(name, { size : ..., capped : ..., max : ... } ) db.createUser(userDocument) db.currentOp() displays currently executing operations in the db db.dropDatabase() . . .

Lëreni procesin mongod të funksionojë në sfond, por dilni nga shell me komandën exit:

  1. exit
Output
Bye

Hapi 3 - Verifikimi i fillimit

Për shkak se një aplikacion i drejtuar nga baza e të dhënave nuk mund të funksionojë pa një bazë të dhënash, ne do të sigurohemi që demon MongoDB, mongod, do të fillojë me sistemin.

Përdorni mjetin systemctl për të kontrolluar statusin e tij të nisjes:

  1. systemctl is-enabled mongod; echo $?

Një dalje zero konfirmon një demon të aktivizuar, të cilin ne duam. Një, megjithatë, konfirmon një demon me aftësi të kufizuara që nuk do të fillojë.

Output
. . . enabled 0

Në rast të një demon të çaktivizuar, përdorni mjetin systemctl për ta aktivizuar atë:

  1. sudo systemctl enable mongod

Tani keni një shembull ekzekutiv të MongoDB që do të fillojë automatikisht pas një rindezjeje të sistemit.

Hapi 4 – Importimi i një grupi të dhënash shembull (opsionale)

Ndryshe nga serverët e tjerë të bazës së të dhënave, MongoDB nuk vjen me të dhëna në bazën e të dhënave të tij test. Meqenëse nuk duam të eksperimentojmë me softuer të ri duke përdorur të dhënat e prodhimit, ne do të shkarkojmë një grup të dhënash mostër nga një shembull MongoDB. Ky dokument JSON përmban një koleksion restorantesh, të cilat ne do t'i përdorim për të praktikuar ndërveprimin me MongoDB dhe për të shmangur dëmtimin e të dhënave të ndjeshme.

Filloni duke lëvizur në një direktori të shkrueshme:

  1. cd /tmp

Përdorni komandën curl dhe lidhjen nga MongoDB për të shkarkuar skedarin JSON:

  1. curl -LO https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/primer-dataset.json

Komanda mongoimport do të futë të dhënat në bazën e të dhënave test. Flamuri --db përcakton se cilën bazë të dhënash të përdoret ndërsa flamuri --collection specifikon se ku do të ruhet informacioni në bazën e të dhënave dhe skedari -- Flamuri i tregon komandës se në cilin skedar duhet të kryejë veprimin e importit:

  1. mongoimport --db test --collection restaurants --file /tmp/primer-dataset.json

Dalja konfirmon importimin e të dhënave nga skedari primer-dataset.json:

Output
connected to: localhost imported 25359 documents

Me të dhënat e mostrës në vend, mund të kryeni një pyetje kundër tij.

Rinisni MongoDB Shell:

  1. mongo

Predha zgjedh bazën e të dhënave test si parazgjedhje, e cila është vendi ku keni importuar të dhënat.

Kërkoni koleksionin restorante me metodën find() për të shfaqur një listë të të gjitha restoranteve në grupin e të dhënave. Meqenëse koleksioni përmban mbi 25,000 hyrje, përdorni metodën opsionale limit() për të reduktuar daljen e pyetjes në një numër të caktuar. Për më tepër, metoda pretty() e bën informacionin më të lexueshëm nga njeriu me rreshta të rinj dhe dhëmbëzime.

  1. db.restaurants.find().limit(1).pretty()
Output
{ "_id" : ObjectId("57e0443b46af7966d1c8fa68"), "address" : { "building" : "1007", "coord" : [ -73.856077, 40.848447 ], "street" : "Morris Park Ave", "zipcode" : "10462" }, "borough" : "Bronx", "cuisine" : "Bakery", "grades" : [ { "date" : ISODate("2014-03-03T00:00:00Z"), "grade" : "A", "score" : 2 }, { "date" : ISODate("2013-09-11T00:00:00Z"), "grade" : "A", "score" : 6 }, { "date" : ISODate("2013-01-24T00:00:00Z"), "grade" : "A", "score" : 10 }, { "date" : ISODate("2011-11-23T00:00:00Z"), "grade" : "A", "score" : 9 }, { "date" : ISODate("2011-03-10T00:00:00Z"), "grade" : "B", "score" : 14 } ], "name" : "Morris Park Bake Shop", "restaurant_id" : "30075445" }

Mund të vazhdoni të përdorni grupin e të dhënave të mostrës për t'u njohur me MongoDB ose ta fshini atë me metodën db.restaurants.drop():

  1. db.restaurants.drop()

Së fundi, dilni nga guaska me komandën dalje:

  1. exit
Output
Bye

konkluzioni

Në këtë tutorial, ju keni shtuar një depo të palëve të treta në yum, keni instaluar serverin e bazës së të dhënave MongoDB, keni importuar një grup të dhënash mostër dhe keni kryer një pyetje të thjeshtë. Ka ende shumë më tepër që mund të bëni me MongoDB, si krijimi i bazave të të dhënave me koleksione, mbushja e bazave të të dhënave me shumë dokumente dhe ndërtimi i aplikacioneve të fuqishme. Për të mësuar më shumë rreth MongoDB, kontrolloni mësimet tona të serive në MongoDB.