Как установить MongoDB на CentOS 7

Вступление

MongoDB - это документно-ориентированная база данных, которая бесплатна и имеет открытый исходный код. Он классифицируется как база данных NoSQL, поскольку он не опирается на традиционную структуру реляционной базы данных на основе таблиц. Вместо этого он использует JSON-подобные документы с динамическими схемами. В отличие от реляционных баз данных, MongoDB не требует предварительно определенной схемы перед добавлением данных в базу данных. Вы можете изменить схему в любое время и так часто, как это необходимо, без необходимости установки новой базы данных с обновленной схемой.

Из этого туториала Вы узнаете, как установить MongoDB Community Edition на сервере CentOS 7.

Предпосылки

Прежде чем следовать этому руководству, убедитесь, что у вас есть обычный пользователь без полномочий root с привилегиями + sudo +. Подробнее о том, как настроить пользователя с этими привилегиями, вы можете узнать из нашего руководства, https://www.digitalocean.com/community/tutorials/how-to-create-a-sudo-user-on-centos-quickstart [ Как создать пользователя Sudo на CentOS.

Шаг 1 - Добавление репозитория MongoDB

Пакет + mongodb-org + не существует в репозиториях по умолчанию для CentOS. Однако MongoDB поддерживает специальный репозиторий. Давайте добавим это на наш сервер.

С помощью редактора + vi + создайте файл + .repo + для + yum +, утилиты управления пакетами для CentOS:

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

Затем перейдите в раздел Install on Red Hat документации MongoDB. и добавьте информацию о хранилище для последней стабильной версии в файл:

/etc/yum.repos.d/mongodb-org.repo

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

Сохраните и закройте файл.

Прежде чем двигаться дальше, мы должны убедиться, что репозиторий MongoDB существует в утилите + yum +. Команда + repolist + отображает список включенных репозиториев:

yum repolist
Output. . .
repo id                          repo name
base/7/x86_64                    CentOS-7 - Base
extras/7/x86_64                  CentOS-7 - Extras

updates/7/x86_64                 CentOS-7 - Updates
. . .

Установив «+ MongoDB Repository +», давайте приступим к установке.

Шаг 2 - Установка MongoDB

Мы можем установить пакет + mongodb-org + из стороннего репозитория с помощью утилиты + yum +.

sudo yum install mongodb-org

Есть два + Это нормально [y / N]: +. Первый разрешает установку пакетов MongoDB, а второй импортирует ключ GPG. Издатель MongoDB подписывает свое программное обеспечение, а + yum + использует ключ для подтверждения целостности загруженных пакетов. В каждой строке введите + Y +, а затем нажмите клавишу + ENTER +.

Затем запустите сервис MongoDB с помощью утилиты + systemctl +:

sudo systemctl start mongod

Хотя мы не будем использовать их в этом руководстве, вы также можете изменить состояние службы MongoDB с помощью команд + reload + и + stop +.

Команда + reload + запрашивает, чтобы процесс + mongod + прочитал файл конфигурации + / etc / mongod.conf +, и применил любые изменения, не требуя перезапуска.

sudo systemctl reload mongod

Команда + stop + останавливает все запущенные процессы + mongod +.

sudo systemctl stop mongod

Утилита + systemctl + не выдала результат после выполнения команды + start +, но мы можем проверить, запущена ли служба, просмотрев конец файла + mongod.log + с помощью команды + tail +:

sudo tail /var/log/mongodb/mongod.log
Output. . .

Вывод * в ожидании соединения * подтверждает, что MongoDB успешно запущен, и мы можем получить доступ к серверу базы данных с помощью оболочки MongoDB:

mongo

Чтобы узнать, как взаимодействовать с MongoDB из оболочки, вы можете просмотреть выходные данные метода + db.help () +, который предоставляет список методов для объекта * db *.

db.help()
OutputDB 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`:

exit
OutputBye

Шаг 3 - Проверка запуска

Поскольку управляемое базой данных приложение не может функционировать без базы данных, мы позаботимся о том, чтобы демон MongoDB + mongod + запускался с системой.

Используйте утилиту + systemctl + для проверки статуса запуска:

systemctl is-enabled mongod; echo $?

Нулевой вывод подтверждает включенного демона, который мы хотим. Однако один подтверждает отключенный демон, который не запустится.

Output. . .
enabled

В случае отключенного демона используйте утилиту + systemctl +, чтобы включить его:

sudo systemctl enable mongod

Теперь у нас есть работающий экземпляр MongoDB, который автоматически запускается после перезагрузки системы.

Шаг 4 - Импорт примера набора данных (необязательно)

В отличие от других серверов баз данных, MongoDB не содержит данных в своей базе данных + test +. Поскольку мы не хотим экспериментировать с новым программным обеспечением, использующим производственные данные, мы загрузим образец набора данных из «https://docs.mongodb.com/getting-started/shell/import-data/[Import Example Dataset]» раздел документации «Начало работы с MongoDB». Документ JSON содержит коллекцию ресторанов, которые мы будем использовать для практики взаимодействия с MongoDB и предотвращения нанесения ущерба конфиденциальным данным.

Начните с перемещения в доступный для записи каталог:

cd /tmp

Используйте команду + curl + и ссылку из MongoDB для загрузки файла JSON:

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

Команда + mongoimport + вставит данные в базу данных * test *. Флаг + - db + определяет, какую базу данных использовать, в то время как флаг + - collection + указывает, где в базе данных будет храниться информация, а флаг + - file + сообщает команде, какой файл выполнить. действие импорта на:

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

Вывод подтверждает импорт данных из файла + primer-dataset.json:

Outputconnected to: localhost
imported 25359 documents

Имея образец набора данных, мы выполним запрос к нему.

Перезапустите оболочку MongoDB:

mongo

По умолчанию оболочка выбирает базу данных + test +, куда мы импортировали наши данные.

Запросите коллекцию * restaurant * с методом + find () +, чтобы отобразить список всех restuarants в наборе данных. Поскольку в коллекции содержится более 25 000 записей, используйте необязательный метод + limit () +, чтобы уменьшить вывод запроса до указанного числа. Кроме того, метод + pretty () + делает информацию более понятной для человека с помощью новых строк и отступов.

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 () +:

db.restaurants.drop()

Наконец, выйдите из оболочки с помощью команды + exit +:

exit
OutputBye

Заключение

В этом руководстве мы рассмотрели добавление стороннего репозитория в + yum +, установку сервера базы данных MongoDB, импорт образца набора данных и выполнение простого запроса. Мы едва поцарапали поверхность возможностей MongoDB. Вы можете создать свою собственную базу данных с несколькими * коллекциями *, заполнить их множеством * документов * и начать создавать надежное приложение.

Related