Установка 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.

Notes: если $releasever подставляет неожиданное значение, при необходимости замените $releasever на «8» вручную в baseurl.
Шаг 3. Установка MongoDB
Установите пакет mongodb-org командой:
sudo dnf -y install mongodb-orgПосле установки служба mongod обычно запускается автоматически. Проверьте статус:
sudo systemctl status 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> и сможете выполнять команды.

Переключитесь на базу данных admin и создайте администратора (замените логин/пароль на безопасные значения):
use admin
db.createUser(
{
user: "howtoforge",
pwd: "howtoforge123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)Нажмите Enter. Затем проверьте список пользователей:
show usersВы увидите запись нового пользователя.

Важно: не используйте в продакшне простые пароли. Сильный пароль — минимум 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Перед удалением данных сделайте резервную копию, если они важны.
Отладка и частые ошибки
- Репозиторий не отображается в repolist:
- Проверьте содержимое /etc/yum.repos.d/mongodb.repo и корректность URL (замените $releasever на 8, если требуется).
- GPG key error при установке:
- Проверьте доступность https://www.mongodb.org/static/pgp/server-4.4.asc и параметр gpgcheck в .repo.
- mongod не запускается:
- Проверьте логи: sudo journalctl -u mongod и /var/log/mongodb/mongod.log
- Проверьте SELinux (audit.log) и права на каталог данных (/var/lib/mongo).
- Подключение извне не работает:
- Проверьте 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 и минимальные привилегии
- Реализовать мониторинг и оповещения на основе логов
Тест-кейсы и приёмка
- Установка пакета завершилась успешно, команда sudo dnf -y install mongodb-org вернула code 0.
- Служба mongod active (running).
- Подключение в shell и создание пользователя администратора прошло успешно.
- При включённой авторизации подключение без credentials отклоняется.
- Внутренний тест 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, затем конфигурацию репозитория и версии пакета.
Если у вас есть вопросы или требуется помощь с конкретной ошибкой — опишите шаги, которые вы выполнили, и вывод команд (логи), и мы поможем с диагностикой.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента