Как установить MongoDB на AlmaLinux 9

MongoDB – это кроссплатформенная и распределенная система баз данных NoSQL (не-SQL или нереляционная) с открытым исходным кодом. Вместо хранения данных в таблицах, как в традиционных базах данных SQL, MongoDB использует гибкие документы для хранения различных форм данных. Для хранения данных MongoDB использует бинарный формат JSON – BSON.

MongoDB – это распределенная база данных NoSQL со встроенной функцией высокой доступности, автоматическим обходом отказа и избыточностью данных, а также горизонтальным масштабированием с помощью шардинга по распределенным кластерам. Она поддерживает многорегиональное географическое развертывание и предоставляет API запросов, поддерживающий операции CRUD (чтение и запись), конвейер агрегации данных, текстовый поиск и геопространственные запросы.

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

Подготовка системы (отключение thp, настройка ulimit и sysctl.conf)

В этом разделе вы подготовите и настроите ваш сервер ALma Linux для установки MongoDB. Ниже перечислены три основных действия, которые вы должны выполнить:

  • Отключите Transparent Huge Pages (THP) с помощью службы systemd
  • Увеличение максимального количества процессов и открытых файлов для пользователя ‘mongod’
  • Установка vm-max fs через файл/etc/sysctl.conf’

Итак, сначала выполните следующую команду ‘dnf’, чтобы установить текстовый редактор ‘nano’ в вашу систему Alma Linux.

sudo dnf install nano -y

Отключение прозрачных огромных страниц (THP)

Теперь создайте новый служебный файл ‘/etc/systemd/system/disable-thp.service‘ для отключения Transparent Huge Pages (THP). Эта служба также будет запускаться при каждой загрузке системы.

sudo nano /etc/systemd/system/disable-thp.service

Вставьте в файл следующую конфигурацию.

[Unit]
Description=Disable Transparent Huge Pages (THP)

[Service]
Type=simple
ExecStart=/bin/sh -c “echo ‘never’ > /sys/kernel/mm/transparent_hugepage/enabled && echo ‘never’ > /sys/kernel/mm/transparent_hugepage/defrag”

[Install]
WantedBy=multi-user.target

После этого сохраните и выйдите из файла.

Далее запустите программу ‘systemctl‘ команда ниже, чтобы перезагрузить менеджер systemd и применить ваши изменения.

sudo systemctl daemon-reload

Наконец, запустите и включите ‘disable-thp.service‘ с помощью приведенной ниже команды. После этого THP будет автоматически отключаться при запуске.

sudo systemctl enable --now disable-thp.service

отключить thp

Настройка ограничений

Создайте новую конфигурацию ‘/etc/security/limits.d/mongodb.conf‘ со следующим ‘nano‘ редактор.

sudo nano /etc/security/limits.d/mongodb.conf

Вставьте в файл приведенную ниже конфигурацию. Это позволит ‘mongod‘ пользователь для запуска процессов max и открытия дескрипторов файлов max для ‘64000‘.

mongod soft nproc 64000
mongod hard nproc 64000
mongod soft nofile 64000
mongod hard nofile 64000

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

Настройка sysctl.conf

Откройте файл ‘/etc/sysctl.conf‘ используя ‘nano‘ редактор.

sudo nano /etc/sysctl.conf

Добавьте следующие строки, чтобы настроить fs.file-max, максимальное количество карт и включить swappiness.

fs.file-max = 2097152
vm.max_map_count = 262144
vm.swappiness = 1

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

Теперь запустите программу ‘sysctl‘ команду ниже, чтобы применить изменения.

sudo sysctl -p

настройка ulimit и sysctl

По желанию вы можете перезагрузить сервер, чтобы применить изменения.

sudo reboot

Установка MongoDB

Теперь, после настройки сервера Alma Linux, запустите установку сервера MongoDB, выполнив следующие действия – В данном случае вы будете устанавливать MongoDB 7.0 на сервер Alma Linux 9.

Сначала создайте новый файл репозитория MongoDB ‘/etc/yum.repos.d/mongodb-org-7.0.repo‘ со следующим ‘nano‘ редактор.

sudo nano /etc/yum.repos.d/mongodb-org-7.0.repo

Вставьте в файл приведенную ниже конфигурацию.

[mongodb-org-7.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/9/mongodb-org/7.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://pgp.mongodb.com/server-7.0.asc

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

Теперь запустите программу ‘dnf‘ команда ниже, чтобы получить список доступных репозиториев на вашем сервере Alma Linux. Вы увидите, что репозиторий MongoDB был добавлен.

sudo dnf repolist

установить репозиторий

Далее запустите команду ‘dnf install‘ команда ниже, чтобы установить MongoDB и оболочку MongoDB в вашу систему. Введите ‘Y‘, чтобы подтвердить установку.

sudo dnf install mongodb-org mongodb-mongosh

установить mongodb

После завершения установки запустите и включите MongoDB ‘mongod‘ служба, и проверьте ‘mongod‘ статус службы, чтобы убедиться, что она запущена.

sudo systemctl enable --now mongod
sudo systemctl status mongod

Ниже видно, что MongoDB запущена на сервере Alma Linux.

запустить проверку mongodb

Включите аутентификацию MongoDB

На данный момент сервер MongoDB запущен на вашем сервере Alma Linux. Теперь вы защитите свою установку MongoDB, включив аутентификацию по паролю и создав нового пользователя-администратора MongoDB. Кроме того, вы изучите базовую оболочку ‘mongosh’ или MongoDB shell для управления сервером MongoDB.

Сначала войдите на сервер MongoDB, используя ‘mongosh‘ команда ниже.

mongosh

Войдя в MongoDB, выполните приведенный ниже запрос, чтобы отключить телеметрию MongoDB.

disableTelemetry()

Теперь переключитесь на базу данных ‘admin‘ и выполните приведенный ниже запрос, чтобы установить пользователя-администратора для MongoDB. В этом примере вы создадите нового пользователя ‘myAliceAdmin‘ в качестве администратора для MongoDB. Также введите свой пароль, когда появится запрос.

use admin
db.createUser(
{
user: "myAliceAdmin",
pwd: passwordPrompt(),
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" }
]
}
)

Если новый пользователь создан, вы увидите вывод ‘{ ok: 1 }‘.

Тип ‘выйти из игры()‘ для выхода из сервера MongoDB.

создать администратора

Далее откройте файл ‘/etc/mongod.conf‘ с помощью опции ‘nano‘ редактор.

sudo nano /etc/mongod.conf

Снимите комментарий с ‘безопасность‘ и добавьте опцию ‘авторизация: включена‘, чтобы включить аутентификацию по паролю в MongoDB.

security:
authorization: enabled

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

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

sudo systemctl restart mongod

Далее запустите ‘mongosh‘ команда ниже, чтобы войти в MongoDB.

mongosh

подключиться к mongodb

Переключитесь на базу данных ‘admin‘ и аутентификация в качестве пользователя ‘myAliceAdmin‘ со следующими запросами. Введите свой пароль, когда вас спросят.

use admin
db.auth("myAliceAdmin", passwordPrompt())

Если аутентификация прошла успешно, вы получите вывод ‘{ ok: 1 }‘.

тестовый аутентификатор

Кроме того, вы можете войти в базу данных ‘admin‘ используя пользователя ‘myAliceAdmin‘ через ‘mongosh‘ команда ниже.

mongosh --port 27017 --authenticationDatabase \
"admin" -u "myAliceAdmin" -p

Создание пользователя в MongoDB

В этом разделе вы создадите новую базу данных и пользователя в MongoDB с помощью команды ‘mongosh‘ Клиент MongoDB.

Чтобы создать новую базу данных и пользователя в MongoDB, выполните следующие запросы. В этом примере вы создадите новую базу данных ‘mydb‘, и новый пользователь ‘myUser‘. Введите пароль при появлении запроса.

use mydb
db.createUser(
{
user: "myUser",
pwd: passwordPrompt(), // or cleartext password
roles: [ { role: "readWrite", db: "mydb" },
{ role: "read", db: "reporting" } ]
}
)

Если новая база данных и пользователь созданы, вы получите сообщение ‘{ ok: 1 }‘, а затем введите ‘quit()‘ для выхода.

создание нового пользователя и базы данных

Затем войдите на сервер MongoDB, используя ‘mongosh‘ команду ниже. Введите пароль для ‘myUser‘ при появлении запроса.

mongosh --port 27017 --authenticationDatabase \
"mydb" -u "myUser" -p

В случае успеха вы получите приглашение оболочки MongoDB.

подключиться к базе данных

Заключение

Поздравляем! Вы завершили установку MongoDB на сервер Alma Linux 9. Вы также обеспечили безопасность MongoDB, создав пользователя-администратора и включив аутентификацию по паролю. Наконец, вы узнали, как создать базу данных и пользователя в MongoDB, а также некоторые основные команды ‘mongosh’ для подключения к серверу MongoDB через командную строку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *