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

Установка и конфигурация MongoDB 3.2 на CentOS 7

5 min read Databases Обновлено 27 Nov 2025
Установка MongoDB 3.2 на CentOS 7
Установка MongoDB 3.2 на CentOS 7

Что такое MongoDB

MongoDB — это документно-ориентированная NoSQL‑СУБД с высокой производительностью, доступностью и автоматическим масштабированием. Вместо таблиц она хранит документы в формате BSON (похожем на JSON). MongoDB впервые появилась в 2009 году. В настоящее время её разрабатывает компания MongoDB, Inc.

Важно: NoSQL означает, что MongoDB не использует SQL для запросов и манипуляции данными в привычном реляционном виде. Кратко — документы, коллекции, репликация и шардинг.

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

  • Сервер с CentOS 7
  • Доступ под root или эквивалентные права sudo
  • Доступ в интернет для загрузки репозитория и пакетов

Что мы сделаем:

  1. Добавим репозиторий MongoDB.
  2. Установим MongoDB.
  3. Исправим типичные ошибки (ulimit).
  4. Создадим администратора.
  5. Включим аутентификацию и проверим работу.

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

Подключитесь к серверу CentOS 7 под учётной записью root:

ssh [email protected]

Перейдите в каталог с репозиториями yum и создайте файл mongodb-org-3.2.repo с помощью vim или вашего любимого редактора:

cd /etc/yum.repos.d/  
vim mongodb-org-3.2.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

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


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

Проверьте список репозиториев, чтобы убедиться, что репозиторий MongoDB доступен:

yum repolist

В списке вы должны увидеть mongodb-org-3.2.

Репозиторий MongoDB установлен на CentOS 7

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

yum -y install mongodb-org

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

systemctl start mongod

Проверьте, что порт 27017 прослушивается и служба активна:

netstat -plntu
systemctl status mongod

Запуск MongoDB на CentOS 7


Шаг 3 — Исправление ошибки с ulimit

Если вы войдёте в mongo shell командой:

mongo

возможно, увидите предупреждение вида:

** WARNING: soft rlimits too low. rlimits set to 4096 processes, 64000 files. Number of processes should be at least 32000...

Пояснение: ulimits (user limits) ограничивают количество процессов и открытых файлов для пользователя. В CentOS 7 MongoDB запускается от пользователя mongod. Чтобы устранить предупреждение, увеличим лимиты в /etc/security/limits.conf.

Откройте файл:

cd /etc/security/  
vim limits.conf

Добавьте в конец файла:

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

Сохраните файл. Примените системные параметры:

sysctl -p

Перезапустите MongoDB и проверьте shell снова:

systemctl restart mongod  
mongo

Ошибка должна исчезнуть.


Шаг 4 — Создание администратора MongoDB

Откройте mongo shell:

mongo

Переключитесь на базу admin:

use admin

Создайте пользователя admin с ролью userAdminAnyDatabase (в примере используется простой пароль; на боевом сервере используйте сильный пароль или систему управления секретами):

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

Проверьте создание пользователя:

show users

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

Пользователь-администратор создан.


Шаг 5 — Включение аутентификации в MongoDB

Чтобы защитить данные, включите аутентификацию, чтобы доступ к данным требовал учётной записи с соответствующими правами.

В старых установках CentOS 7 служба MongoDB может запускаться через init-скрипт в /etc/init.d/. Отредактируйте этот скрипт, чтобы добавить опцию –auth.

Откройте init-скрипт:

cd /etc/init.d/  
vim mongod

Найдите строку с переменной OPTIONS и добавьте опцию –auth, чтобы получилось:

OPTIONS=" --auth -f $CONFIGFILE"

Сохраните изменения. Обновите конфигурацию systemd и перезапустите службу:

systemctl daemon-reload  
systemctl restart mongod

Проверка: войдите в mongo shell и попытайтесь показать пользователей в базе admin:

mongo

use admin
show users

Вы увидите сообщение об ошибке, связанное с правами. Авторизуйтесь командой db.auth():

db.auth('admin', 'admin123')

После успешной аутентификации команда show users вернёт список пользователей и ролей.

Настройка аутентификации MongoDB

Поздравляем — MongoDB 3.2 установлена и настроена на CentOS 7.


Типичные проблемы и рекомендации по устранению

  • Невозможно подключиться по сети: проверьте firewalld/iptables и убедитесь, что порт 27017 открыт для нужных адресов.
  • Ошибка прав доступа к файлам: убедитесь, что каталог данных и логов принадлежат пользователю mongod (обычно /var/lib/mongo и /var/log/mongodb).
  • При обновлении до новых версий: прежде чем апгрейдить, сделайте резервную копию данных и проверьте совместимость формата данных.

Совет по безопасности: ограничьте доступ к порту 27017 только с доверенных адресов и используйте сетевые политики/брандмауэр.


Альтернативные подходы

  • Включение аутентификации через файл конфигурации /etc/mongod.conf: в разделе security установите authorization: “enabled” и перезапустите службу. Это более современный и предпочтительный способ для systemd‑управляемых систем.
  • Для автоматизации установки используйте Ansible или Chef, чтобы воспроизводимо добавлять репозиторий и настраивать параметры ulimit и аутентификацию.
  • Вместо изменения init-скрипта можно корректно использовать systemd-юнит: добавьте опцию –auth в конфигурацию сервиса через Override-файл systemctl edit mongod.service, если установлен systemd unit.

Проверки и контрольный список (оператор)

  • Репозиторий mongodb-org-3.2 добавлен в /etc/yum.repos.d/
  • Пакет mongodb-org установлен
  • Служба mongod запущена (systemctl status mongod)
  • Порт 27017 прослушивается и доступен (по необходимости)
  • Лимиты для mongod повышены в /etc/security/limits.conf
  • Создан пользователь admin с ролями UserAdminAnyDatabase
  • Аутентификация включена и протестирована (db.auth)
  • Резервная копия данных перед любыми изменениями

Короткие инструкции для ролей

  • Администратор: создайте учётную запись admin, настройте резервное копирование и мониторинг.
  • Оператор: проверьте службы, логи и лимиты системы, примените обновления безопасности для ОС.
  • Разработчик: используйте отдельные учётные записи с минимальными правами для приложений.

Ментальная модель и когда этот подход не подходит

Ментальная модель: MongoDB — это набор документов (JSON/BSON), хранимых в коллекциях; для управления доступом применяются роли, аутентификация и разрешения на уровне базы.

Не подходит, если:

  • Требуется строгая ACID‑транзакционность между множеством таблиц — в таких случаях предпочтительнее реляционные СУБД.
  • Нужны сложные SQL‑запросы и связи между множеством таблиц — SQL‑БД удобнее.

Мини‑методология развертывания

  1. Подготовка ОС: обновление, настройка часов, SELinux/firewalld политики.
  2. Добавление репозитория и установка mongodb-org.
  3. Настройка системных лимитов и прав владельца каталога данных.
  4. Создание администратора и включение аутентификации.
  5. Настройка мониторинга и бэкапов.

Фактбокс — ключевые параметры

  • Порт по умолчанию: 27017
  • Пользователь службы: mongod
  • Рекомендуемые лимиты (в этом руководстве): nproc 64000, nofile 64000
  • Конфигурационный файл: /etc/mongod.conf (в некоторых установках)

Диагностическое дерево (упрощённое)

flowchart TD
  A[Запущен mongod?] -->|нет| B[systemctl start mongod]
  A -->|да| C[Порты открыты?]
  C -->|нет| D[Проверить firewalld/iptables]
  C -->|да| E[Есть предупреждения ulimit?]
  E -->|да| F[Отредактировать /etc/security/limits.conf]
  E -->|нет| G[Создать admin и включить auth]
  G --> H[Перепроверить доступы]

Небольшой глоссарий

  • BSON — бинарное представление JSON, которое MongoDB использует для хранения документов.
  • mongod — демон сервера MongoDB.
  • mongo — интерактивная оболочка клиента MongoDB.

Примечания по безопасности и соответствию

  • Никогда не храните реальные пароли в открытом виде в репозиториях; используйте менеджеры секретов.
  • Для соответствия локальным требованиям безопасности ограничьте сетевой доступ и ведите аудит подключений.

Полезные ссылки


Краткое резюме

В руководстве описаны шаги по установке MongoDB 3.2 на CentOS 7, исправлению типичных проблем с ulimit, созданию администратора и включению аутентификации. Дополнительно приведены рекомендации по отладке, альтернативные подходы и контрольный список для эксплуатации.

Важно: на продуктивных системах используйте сильные пароли, ограничение доступа по сети и автоматическое резервное копирование.

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

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

Баланс в фотографии: виды и приёмы
Фотография

Баланс в фотографии: виды и приёмы

Как сохранить и выйти из Vi
Linux

Как сохранить и выйти из Vi

Как почистить контроллер PS4 — полный гайд
Геймерская периферия

Как почистить контроллер PS4 — полный гайд

Как печатать в Word: советы и макросы
Офис

Как печатать в Word: советы и макросы

Как продавать на Amazon — руководство для частных
Электронная коммерция

Как продавать на Amazon — руководство для частных

Очистка очереди печати в Windows 11
Windows

Очистка очереди печати в Windows 11