Гид по технологиям

Установка MongoDB на AlmaLinux 8

6 min read Базы данных Обновлено 27 Nov 2025
Установка MongoDB на AlmaLinux 8
Установка MongoDB на AlmaLinux 8

Введение

MongoDB — это открытая документно-ориентированная NoSQL база данных. Термин NoSQL означает «Not Only SQL» — не только SQL. В отличие от классических реляционных СУБД (MySQL, Oracle и др.), MongoDB хранит документы в формате, совместимом с JSON (BSON — Binary JSON), что уменьшает размер и ускоряет чтение/запросы для многих рабочих нагрузок.

Ключевые свойства в одной строке:

  • BSON — бинарное представление JSON, экономящее пространство и ускоряющее парсинг.
  • Документы — гибкая схема, хранение ключ-значение и вложенных структур.
  • Поддержка транзакций и атомарных операций на уровне документов; у MongoDB есть поддержка ACID для транзакций в пределах реплик и шардирования в поддерживаемых версиях.

Когда MongoDB подходит: быстрые чтения, схемы, которые часто меняются, простые агрегаты. Когда не подходит: строгие межтабличные связи и сложные реляционные ограничения во многих местах.

Important: в этом руководстве используется репозиторий MongoDB для версии 4.4 и менеджер пакетов dnf на AlmaLinux 8.

Что вы получите из этой статьи

  • Пошаговая установка MongoDB 4.4 через репозиторий
  • Проверка статуса и базовые тесты CRUD
  • Создание административного пользователя и включение аутентификации
  • Рекомендации по безопасности (firewall, bind IP, TLS, SELinux)
  • Тесты, критерии приёмки, откат и отладка

Предварительные требования

  • Сервер с установленной AlmaLinux 8 и доступом root или sudo-права.
  • Подключение к Интернету для загрузки репозитория и пакетов.
  • Небольшой запас свободного места на диске (несколько сотен мегабайт для пакета и дополнительное место для данных).

Шаг 1. Обновление системы

Обновите локальные метаданные пакетов и установленные пакеты перед установкой:

sudo dnf -y update

Если вы выполняли обновление недавно, этот шаг можно пропустить.

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

Стандартные репозитории AlmaLinux не содержат пакета mongodb-org, поэтому добавим официальный репозиторий MongoDB. Создайте файл репозитория:

sudo nano /etc/yum.repos.d/mongodb.repo

Вставьте в файл следующее содержимое и сохраните:

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

Обновите кэш репозиториев:

sudo dnf update

Проверьте, что репозиторий добавлен в список:

sudo dnf repolist

Вы должны увидеть в выводе запись, связанную с mongodb-org-4.4.

Список репозиториев с MongoDB

Notes: если $releasever подставляет неожиданное значение, при необходимости замените $releasever на «8» вручную в baseurl.

Шаг 3. Установка MongoDB

Установите пакет mongodb-org командой:

sudo dnf -y install mongodb-org

После установки служба mongod обычно запускается автоматически. Проверьте статус:

sudo systemctl status mongod

Пример вывода статуса:

Статус службы mongod

Если служба не запущена, стартуйте её вручную и включите автозапуск:

sudo systemctl start mongod
sudo systemctl enable mongod

Проверьте логи для диагностики ошибок:

sudo journalctl -u mongod --no-pager
# или
sudo tail -n 200 /var/log/mongodb/mongod.log

Примечание: путь к логам может отличаться в зависимости от пакета; часто используется /var/log/mongodb/mongod.log или /var/log/mongod/mongod.log.

Шаг 4. Тестирование установки и создание администратора

Подключитесь к MongoDB shell:

mongo

Вы попадёте в prompt mongo> и сможете выполнять команды.

Вход в MongoDB shell

Переключитесь на базу данных admin и создайте администратора (замените логин/пароль на безопасные значения):

use admin

db.createUser(
  {
    user: "howtoforge",
    pwd: "howtoforge123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

Нажмите Enter. Затем проверьте список пользователей:

show users

Вы увидите запись нового пользователя.

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

Важно: не используйте в продакшне простые пароли. Сильный пароль — минимум 12 символов, случайный набор символов.

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

По умолчанию MongoDB может запускаться без принудительной проверки учётных данных. Чтобы включить авторизацию, отредактируйте конфигурационный файл /etc/mongod.conf и в секции security установите authorization: “enabled”:

# пример: /etc/mongod.conf
security:
  authorization: enabled

После редактирования перезапустите службу:

sudo systemctl restart mongod

Подключение с учётными данными:

mongo -u howtoforge -p howtoforge123 --authenticationDatabase admin

Рекомендации по безопасности

  • Bind IP: ограничьте bindIp в /etc/mongod.conf, чтобы слушать только на локальном интерфейсе или нужных адресах (например, 127.0.0.1 или внутренний IP).
  • Firewall: откройте порт 27017 только для доверенных хостов:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.0/24" port protocol="tcp" port="27017" accept'
sudo firewall-cmd --reload
  • TLS: используйте TLS для шифрования соединений между клиентами и серверами.
  • SELinux: при проблемах с запуском проверьте /var/log/audit/audit.log и применяйте политики или временно переключитесь в режим permissive только для отладки.
  • Обновления: регулярно применять обновления безопасности для системы и MongoDB (при поддерживаемой версии).

Проверки и тесты (критерии приёмки)

Критерии приёмки

  • Служба mongod запущена и в состоянии active (running): sudo systemctl status mongod
  • Подключение в shell выполнено локально: mongo и prompt mongo>
  • Аутентификация работает: подключение по credentials: mongo -u -p –authenticationDatabase admin
  • Простая запись/чтение: в mongo shell выполнены базовые CRUD-операции

Примеры тестов в shell:

use testdb
db.users.insertOne({name: "alice", role: "tester"})
db.users.find().pretty()

Если команды выполняются и возвращают ожидаемые результаты, установка считается успешной.

Откат/удаление (Rollback)

Чтобы удалить MongoDB и связанные пакеты:

sudo systemctl stop mongod
sudo dnf remove -y mongodb-org*
sudo rm -f /etc/yum.repos.d/mongodb.repo
# удалите данные, если необходимо (обычно /var/lib/mongo)
sudo rm -rf /var/lib/mongo

Перед удалением данных сделайте резервную копию, если они важны.

Отладка и частые ошибки

  1. Репозиторий не отображается в repolist:
    • Проверьте содержимое /etc/yum.repos.d/mongodb.repo и корректность URL (замените $releasever на 8, если требуется).
  2. GPG key error при установке:
  3. mongod не запускается:
    • Проверьте логи: sudo journalctl -u mongod и /var/log/mongodb/mongod.log
    • Проверьте SELinux (audit.log) и права на каталог данных (/var/lib/mongo).
  4. Подключение извне не работает:
    • Проверьте bindIp в /etc/mongod.conf, правила firewall и маршрутизацию сети.

Альтернативные способы установки

  • Контейнеры: запуск MongoDB в Docker/Podman полезен для изолированных окружений и быстрого тестирования.
  • Модули RHEL/CentOS (dnf module) — редко применимо для последней версии MongoDB.
  • Репозитории сторонних поставщиков или сборки из исходников — для специальных требований.
flowchart TD
  A[Выберите способ установки] --> B{Нужна быстрая установка для разработки?}
  B -- Да --> C[Используйте Docker/Podman]
  B -- Нет --> D{Нужна поддерживаемая версия в проде?}
  D -- Да --> E[Установите через официальный репозиторий 'rpm']
  D -- Нет --> F[Соберите из исходников или используйте пакеты dnf]

Совместимость и версии

  • Руководство использует MongoDB 4.4. Перед обновлением в продакшене проверьте матрицу совместимости драйверов и требуемые версии клиента/сервера.
  • AlmaLinux 8 совместим с репозиторием по URL https://repo.mongodb.org/yum/redhat/8/…; при проблемах укажите 8 явно вместо $releasever.

Ресурсная «выжимка» — факты в цифрах

  • Порт по умолчанию: 27017
  • Типичный путь данных: /var/lib/mongo
  • Типичный путь конфигурации: /etc/mongod.conf

(Числа приведены для типичной установки RPM-пакета; в контейнере/специфичных сборках пути могут отличаться.)

Роли и чек-листы

Administrator / DevOps:

  • Убедиться в наличии root/sudo прав
  • Добавить репозиторий и установить пакет
  • Настроить firewall и SELinux
  • Включить TLS и авторизацию
  • Настроить систему резервного копирования

Developer:

  • Подключиться к mongo shell с учётными данными
  • Выполнить тестовые CRUD-запросы
  • Проверить производительность для типичных сценариев

Security Engineer:

  • Провести аудит конфигурации /etc/mongod.conf
  • Настроить RBAC и минимальные привилегии
  • Реализовать мониторинг и оповещения на основе логов

Тест-кейсы и приёмка

  1. Установка пакета завершилась успешно, команда sudo dnf -y install mongodb-org вернула code 0.
  2. Служба mongod active (running).
  3. Подключение в shell и создание пользователя администратора прошло успешно.
  4. При включённой авторизации подключение без credentials отклоняется.
  5. Внутренний тест CRUD проходит для выбранной тестовой базы.

Когда MongoDB не лучший выбор

  • Когда ваша модель данных требует комплексных реляционных транзакций и множества JOIN-операций.
  • Когда вам важны строгие ACID-гарантии в многотабличных реляционных схемах; реляционные СУБД остаются предпочтением в таких случаях.

Короткая инструкция для быстрого развёртывания (cheat sheet)

sudo dnf -y update
sudo tee /etc/yum.repos.d/mongodb.repo <<'EOF'
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
EOF
sudo dnf -y install mongodb-org
sudo systemctl enable --now mongod
sudo firewall-cmd --permanent --add-port=27017/tcp && sudo firewall-cmd --reload
# создать admin в mongo shell: use admin; db.createUser(...)

Заключение

В этом руководстве показано, как установить MongoDB 4.4 на AlmaLinux 8, проверить её работу и выполнить базовую настройку безопасности. Следуйте рекомендациям по ограничению доступа (bindIp, firewall), включению аутентификации и использованию TLS в продакшене. Если возникнут проблемы — сначала проверьте логи и настройки SELinux, затем конфигурацию репозитория и версии пакета.

Если у вас есть вопросы или требуется помощь с конкретной ошибкой — опишите шаги, которые вы выполнили, и вывод команд (логи), и мы поможем с диагностикой.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро