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

Установка и настройка MongoDB на Ubuntu 20.04

4 min read Databases Обновлено 28 Nov 2025
Установка MongoDB на Ubuntu 20.04 — руководство
Установка MongoDB на Ubuntu 20.04 — руководство

Иллюстрация: установка MongoDB на сервер Ubuntu

Требования

  • Сервер под управлением Ubuntu 20.04.
  • Настроен root‑пароль или доступ к sudo от имени пользователя с правами администратора.

Короткая схема установки

  1. Установить пакет gnupg.
  2. Добавить GPG‑ключ MongoDB.
  3. Добавить официальный репозиторий MongoDB для нужной версии.
  4. Обновить список пакетов и установить mongodb-org.
  5. Запустить и включить службу mongod.
  6. Включить аутентификацию и создать админ‑пользователя.

Установка MongoDB

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

Сначала установите пакет gnupg:

apt-get install gnupg -y

Далее загрузите и добавьте GPG‑ключ MongoDB:

wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | apt-key add -

Добавьте репозиторий MongoDB (в примере используется канал для версии 4.2):

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.2.list

Затем обновите список пакетов и установите MongoDB:

apt-get update -y  
apt-get install mongodb-org -y

После завершения установки запустите службу и включите её автозапуск:

systemctl start mongod  
systemctl enable mongod

Проверить статус службы можно так:

systemctl status mongod

Ожидаемый примерный вывод (информация в логах может отличаться):

? mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2020-05-15 05:30:39 UTC; 18s ago
       Docs: https://docs.mongodb.org/manual
   Main PID: 106996 (mongod)
     Memory: 76.0M
     CGroup: /system.slice/mongod.service
             ??106996 /usr/bin/mongod --config /etc/mongod.conf

May 15 05:30:39 ubuntu2004 systemd[1]: Started MongoDB Database Server.
May 15 05:30:48 ubuntu2004 systemd[1]: /lib/systemd/system/mongod.service:11: PIDFile= references a path below legacy directory /var/run/, upd>
lines 1-11/11 (END)

Проверить версию и адрес сервера можно командой:

mongo --eval 'db.runCommand({ connectionStatus: 1 })'

Пример вывода:

MongoDB shell version v4.2.6
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("e1575445-f441-4b30-a5d7-4cf68852e68f") }
MongoDB server version: 4.2.6
{
    "authInfo" : {
        "authenticatedUsers" : [ ],
        "authenticatedUserRoles" : [ ]
    },
    "ok" : 1  
}

Конфигурация MongoDB

Файл конфигурации MongoDB: /etc/mongod.conf. По умолчанию аутентификация отключена и любой локальный пользователь может получить доступ ко всем базам данных. Для боевой эксплуатации рекомендуется включить авторизацию.

Отредактируйте /etc/mongod.conf, например через nano:

nano /etc/mongod.conf

Добавьте или отредактируйте секцию security так, чтобы она содержала:

security:
  authorization: enabled

Сохраните файл и перезапустите службу, чтобы применить изменения:

systemctl restart mongod

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

Создание администратора MongoDB

После включения аутентификации создайте администратора:

  1. Откройте mongo‑консоль:
mongo

Вы увидите стартовый вывод shell. Переключитесь на базу admin:

> use admin

Создайте админ‑пользователя и задайте пароль (замените “password” на надёжный пароль):

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

Ожидаемый ответ:

Successfully added user: {
    "user" : "admin",
    "roles" : [
        {
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
        }
    ]
}

Выйдите из консоли:

> quit()

Проверка аутентификации

Подключитесь под созданным пользователем:

mongo -u admin -p --authenticationDatabase admin

Система попросит ввести пароль:

MongoDB shell version v4.2.6
Enter password: 

После успешного ввода вы попадёте в shell. Проверьте текущую базу и список пользователей:

> use admin
> show users

Пример ответа на show users показывает созданного пользователя и поддерживаемые механизмы аутентификации, например SCRAM‑SHA‑1 и SCRAM‑SHA‑256.

Безопасность и hardening

Important: эти рекомендации повышают безопасность и подходят для боевой среды.

  • Всегда используйте сильные пароли и храните их в менеджере секретов.
  • Включите авторизацию (authorization) и, при необходимости, ограничьте механизмы аутентификации до SCRAM‑SHA‑256.
  • Запретите внешний доступ к порту 27017 на уровне брандмауэра (ufw / iptables) и разрешите доступ только из доверенных сетей.
  • Включите шифрование соединений TLS/SSL для внешних подключений.
  • Настройте резервное копирование (mongodump / filesystem snapshots) и проверьте процедуру восстановления.
  • Ограничьте системные привилегии процесса mongod; запускайте от выделённого пользователя и следите за правами на каталоги данных.

Проверка и отладка — быстрый чеклист

  • Служба запущена: systemctl status mongod
  • Порт слушает: ss -ltnp | grep 27017
  • Логи: journalctl -u mongod -e или /var/log/mongodb/mongod.log
  • Подключение: mongo –eval ‘db.runCommand({ connectionStatus: 1 })’
  • Пользователи: в mongo shell используйте show users в базе admin

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

  • Использовать MongoDB Atlas (облачное решение) вместо самостоятельного хостинга — быстрее в развёртывании и с встроенным бэкапом.
  • Если нужна более новая версия для Ubuntu 20.04, переключитесь на репозиторий, предназначенный для focal или используйте официальные пакеты для вашей версии ОС.
  • Для простых тестовых стендов можно установить mongodb‑package из стандартных репозиториев Ubuntu, но для боевой эксплуатации рекомендуются официальные пакеты mongodb-org.

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

Администратор базы:

  • Создал администратора и проверил show users.
  • Настроил резервное копирование и план восстановления.
  • Настроил мониторинг и оповещения.

DevOps инженер:

  • Настроил автозапуск systemd и мониторинг состояния.
  • Ограничил доступ по брандмауэру к порту 27017.
  • Настроил логирование и ротацию логов.

Разработчик:

  • Подключился к базе с учётными данными из безопасного хранилища.
  • Проверил корректность индексов и производительность запросов на тестовой нагрузке.

Типичные проблемы и шаги устранения

  1. Служба не запускается — проверьте журналы: journalctl -u mongod -xe и /var/log/mongodb/mongod.log.
  2. Порт недоступен извне — проверьте правила ufw/iptables и настройки bind в /etc/mongod.conf (listenAddress).
  3. После включения authorization потеряли доступ — перезапустите в режиме восстановления или временно отключите authorization, чтобы создать пользователя локально (только в контролируемой среде).

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

  • mongod запущен и активен (systemctl status mongod показывает active)
  • Подключение под админом успешно: mongo -u admin -p –authenticationDatabase admin
  • show users возвращает созданного админа
  • Входящие подключения к порту 27017 ограничены брандмауэром

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

В этом руководстве вы узнали, как установить MongoDB на Ubuntu 20.04, включить авторизацию, создать администратора и выполнить базовую проверку работоспособности. Рекомендуется дополнительно настроить TLS, бэкапы и мониторинг для боевого окружения. Для подробной документации и вариантов конфигурации смотрите официальную документацию MongoDB: https://docs.mongodb.org/manual

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

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

Компьютер не включается — пошаговый ремонт
Компьютеры

Компьютер не включается — пошаговый ремонт

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

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

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

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

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

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

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

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

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

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