ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

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

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

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

Это руководство проведет вас через установку MongoDB Community Edition на сервере CentOS 7.

 

Предпосылки

Перед выполнением этого учебника, убедитесь, что у вас есть обычный, не корневой пользователь с привилегиями sudo. Вы можете узнать больше о том, как создать пользователя с этими привилегиями в руководстве, как создать пользователя sudo на CentOS.

Шаг 1 – Добавление MongoDB Repository

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

С помощью редактора vi, создайте файл:

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

 

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

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

 

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

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

yum repolist

 

Вывод
. . .
repo id                          repo name
base/7/x86_64                    CentOS-7 - Base
extras/7/x86_64                  CentOS-7 - Extras
mongodb-org-3.2/7/x86_64         MongoDB Repository
updates/7/x86_64                 CentOS-7 - Updates
. . .

 

Давайте теперь перейдем к установке.

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

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

sudo yum install mongodb-org

 

Есть два приглашения Is this ok [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

 

Вывод
. . .
[initandlisten] waiting for connections on port 27017

 

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

mongo

 

MongoDB является многопоточным приложением. Он может запускать дополнительные процессы для обработки своей рабочей нагрузки. Предупреждение говорит, что для MongoDB, наиболее эффективное число процессов, которые он может осуществлять, должно составлять половину от числа файлов, которые он может открыть в любой момент времени. Чтобы устранить это предупреждение, измените значение processes rlimit для mongod, путем редактирования файла 20-nproc.conf:

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

 

Добавьте следующую строку в конец файла:

/etc/security/limits.d/20-nproc.conf
. . .
mongod soft nproc 32000

 

Чтобы новые ограничения были доступны для MongoDB, перезапустите его при помощи утилиты systemctl:

sudo systemctl restart mongod

 

После этого, при подключении к MongoDB Shell, предупреждение должно исчезнуть.

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

db.help()

 

Вывод
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:

exit

 

Вывод
Bye

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

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

Используйте утилиту systemctl, чтобы проверить состояние запуска:

systemctl is-enabled mongod; echo $?

 

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

Вывод
. . .
enabled
0

 

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

sudo systemctl enable mongod

 

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

Шаг 4 – Пример импорта массива данных (необязательно)

В отличие от других серверов баз данных, MongoDB не комплектуется с набором данными в своей базе данных test. Так как мы не хотим, экспериментировать с новым программным обеспечением, используя данные о производстве, мы загрузим образец набор данные из “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 будет вставлять данные в тестовую базу данных. Флаг –db определяет, какие базы данных используются в то время как флаг –collection указывает, где в базе данных будет храниться информация, а флаг –file указывает команду, какой файл для выполнения действия на импорт:

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

 

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

Вывод
connected to: localhost
imported 25359 documents

 

С образцом набора данными, мы выполним запрос к ней.

Перезапустите MongoDB Shell:

mongo

 

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

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

db.restaurants.find().limit( 1 ).pretty()

 

Вывод
{
    "_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

 

Вывод
Bye

Вывод

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

Exit mobile version