Како да инсталирате MongoDB на CentOS 7


Вовед

MongoDB е база на податоци ориентирана кон документи која е бесплатна и со отворен код. Класифицирана е како NoSQL база на податоци бидејќи не се потпира на традиционална структура на релациона база на податоци базирана на табели. Наместо тоа, користи документи слични на JSON со динамични шеми. За разлика од релационите бази на податоци, MongoDB не бара претходно дефинирана шема пред да додадете податоци во базата на податоци. Можете да ја менувате шемата во секое време и онолку често колку што е потребно, без да мора да поставите нова база на податоци со ажурирана шема.

Во ова упатство, ќе инсталирате MongoDB Community Edition на сервер CentOS 7.

Предуслови

Пред да го следите ова упатство, проверете дали имате

  • Сервер CentOS 7 со корисник безroot sudo. За насоки, ве молиме погледнете го нашиот туторијал, Почетно поставување сервер со CentOS 7.

Чекор 1 – Додавање на складиштето MongoDB

Пакетот mongodb-org не постои во стандардните складишта за CentOS. Сепак, MongoDB одржува посветено складиште. Ајде да го додадеме на нашиот сервер.

Со уредникот vi, креирајте датотека .repo за yum, алатката за управување со пакети за CentOS:

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

Потоа, посетете го делот Install on Red Hat од документацијата на MongoDB и додајте ги информациите за складиштето за најновото стабилно издание во датотеката:

[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

Зачувајте ги промените во датотеката со притискање на копчето ESC, потоа напишете :wq и притиснете ENTER.

Пред да продолжите, треба да потврдите дека складиштето MongoDB постои во алатката yum. Командата repolist прикажува список на овозможени складишта:

  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 . . .

Со поставеното Репозиториум MongoDB, можете да продолжите со инсталацијата.

Чекор 2 – Инсталирање MongoDB

Можете да го инсталирате пакетот mongodb-org од складиштето од трета страна користејќи ја алатката yum.

  1. sudo yum install mongodb-org

Има два потсетници Дали е ова во ред [y/N]:. Првиот дозволува инсталирање на MongoDB пакетите, а вториот увезува клуч GPG. Издавачот на MongoDB го потпишува нивниот софтвер и yum користи клуч за да го потврди интегритетот на преземените пакети. На секое барање, напишете Y и потоа притиснете го копчето ENTER.

Следно, стартувајте ја услугата MongoDB со алатката systemctl:

  1. sudo systemctl start mongod

Иако нема да ги користиме во ова упатство, може да ја промените состојбата на услугата MongoDB со командите reload и stop.

Командата reload бара процесот mongod да ја чита конфигурациската датотека, /etc/mongod.conf и да ги примени какви било промени без да бара рестартирање.

  1. sudo systemctl reload mongod

Командата стоп ги запира сите процеси што се извршуваат mongod.

  1. sudo systemctl stop mongod

Услужната алатка systemctl не даде резултат по извршувањето на командата start, но можете да проверите дали услугата започнала со прегледување на крајот на mongod.log датотека со командата tail:

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

Излез од чекање за врска потврдува дека MongoDB започна успешно и дека можете да пристапите до серверот на базата на податоци со MongoDB Shell:

  1. mongo

Забелешка: Кога ја лансиравте MongoDB Shell, можеби сте виделе вакво предупредување:

** ПРЕДУПРЕДУВАЊЕ:** меките граници се премногу ниски. ограничувањата поставени на 4096 процеси, 64000 датотеки. Бројот на процеси треба да биде најмалку 32000 : 0,5 пати повеќе од бројот на датотеки.

MongoDB е апликација со навој. Може да започне дополнителни процеси за да се справи со обемот на работа. Во предупредувањето се наведува дека за да може MongoDB да биде најефективен, бројот на процеси што е овластен да ги врти треба да биде половина од бројот на датотеки што може да ги има отворени во даден момент. За да го решите предупредувањето, изменете ја меката гранична вредност процеси за mongod со уредување на датотеката 20-nproc.conf:

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

Додадете ја следнава линија на крајот од датотеката:

. . .
mongod soft nproc 32000

Погрижете се да ги зачувате промените со притискање на копчето ESC, потоа напишете :wq и притиснете ENTER.

За новото ограничување да биде достапно за MongoDB, рестартирајте го користејќи ја алатката systemctl:

  1. sudo systemctl restart mongod

Потоа, кога ќе се поврзете со MongoDB Shell, предупредувањето треба да престане да постои.

За да научите како да комуницирате со MongoDB од школка, можете да го прегледате излезот од методот db.help() кој обезбедува листа на методи за објектот 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() . . .

Оставете го процесот mongod да работи во заднина, но излезете од школка со командата exit:

  1. exit
Output
Bye

Чекор 3 - Потврдување на стартувањето

Бидејќи апликацијата управувана од базата на податоци не може да функционира без база на податоци, ќе се погрижиме демонот MongoDB, mongod, да започне со системот.

Користете ја алатката systemctl за да го проверите статусот на неговото стартување:

  1. systemctl is-enabled mongod; echo $?

Излез од нула потврдува овозможен демон, кој го сакаме. Еден, сепак, потврдува оневозможен демон што нема да започне.

Output
. . . enabled 0

Во случај на оневозможен демон, користете ја алатката systemctl за да ја овозможите:

  1. sudo systemctl enable mongod

Сега имате вклучен примерок на MongoDB кој автоматски ќе започне по рестартирање на системот.

Чекор 4 – Увоз на пример за збир на податоци (опционално)

За разлика од другите сервери за бази на податоци, MongoDB не доаѓа со податоци во својата база на податоци test. Бидејќи не сакаме да експериментираме со нов софтвер користејќи податоци за производство, ќе преземеме примерок на база на податоци од примерот на MongoDB. Овој документ JSON содржи збирка ресторани, кои ќе ги користиме за да вежбаме интеракција со MongoDB и да избегнеме да предизвикаме штета на чувствителните податоци.

Започнете со преместување во директориум што може да се запише:

  1. cd /tmp

Користете ја командата curl и врската од MongoDB за да ја преземете датотеката JSON:

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

Командата mongoimport ќе ги вметне податоците во базата на податоци тест. Знамето --db дефинира која база на податоци да се користи додека знамето --collection одредува каде во базата на податоци ќе се складираат информациите, а --датотеката Знамето ѝ кажува на командата на која датотека да се изврши акцијата за увоз:

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

Излезот го потврдува увозот на податоците од датотеката primer-dataset.json:

Output
connected to: localhost imported 25359 documents

Со поставената база на податоци, можете да извршите барање против него.

Рестартирајте ја MongoDB Shell:

  1. mongo

Школката стандардно ја избира базата на податоци test, каде што сте ги увезувале податоците.

Побарајте ја збирката ресторани со методот find() за да прикажете список со сите ресторани во базата на податоци. Бидејќи колекцијата содржи над 25.000 записи, користете го опционалниот метод limit() за да го намалите излезот од барањето на одреден број. Дополнително, методот pretty() ги прави информациите почитливи за човек со нови линии и вдлабнатини.

  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" }

Можете да продолжите со користење на примерокот на податоци за да се запознаете со MongoDB или да го избришете со методот db.restaurants.drop():

  1. db.restaurants.drop()

На крајот, излезете од школка со командата exit:

  1. exit
Output
Bye

Заклучок

Во ова упатство, додадовте складиште од трета страна во yum, го инсталиравте серверот за базата на податоци MongoDB, увезете примерок на база на податоци и извршивте едноставно барање. Има уште многу што можете да направите со MongoDB, како што е создавање бази на податоци со збирки, пополнување бази на податоци со многу документи и градење робусни апликации. За да дознаете повеќе за MongoDB, проверете ги нашите упатства за серии на MongoDB.