Знаешь, что бесит в большинстве "гайдов по установке MongoDB"? Они написаны так, будто их целевая аудитория — котёнок, впервые подошедший к миске. Полстраницы воды про "что такое NoSQL" и "какая Mongo классная".

Ты это уже знаешь, иначе бы сюда не пришёл. Тебе нужно, чтобы база встала, работала и не дала доступ каждому встречному с улицы. Давай без кружев и слащавых фраз. Будет быстро, грязно и по делу.

Установка

Для начала Mongo не встанет сама — нужно добавить её репозиторий. Подтягиваем GPG-ключ, чтобы система не визжала, что мы ставим что-то "нечистое":

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4

Потом добавляем репу под Ubuntu 18.04:

sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse' 

Если Ubuntu нахамит и скажет, что add-apt-repository не существует — ставим software-properties-common. Да, бывает.

Обновляем пакеты и ставим Mongo целиком:

sudo apt update
sudo apt install mongodb-org

В комплект заедут:

  • mongod — демон базы.
  • mongos — маршрутизатор запросов.
  • mongo — интерактивная консоль, через которую будешь колдовать с базой.

Набор тулов (mongodb-org-tools) для импорта, экспорта и прочей магии.

Запуск

Поднимаем демон и ставим автозапуск, чтобы при перезагрузке не орать в 3 утра "почему не работает":

sudo systemctl start mongod
sudo systemctl enable mongod

Проверяем, что оно дышит:

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

Если видишь ok: 1 — живо.

Настройка безопасности

По умолчанию Mongo дружелюбная, как дверь без замка в общаге. Это мило, пока первый же ботнет не вычистит твои данные.
Лезем в /etc/mongod.conf, находим раздел security и включаем авторизацию:

security:
  authorization: enabled 

Это включает RBAC — систему прав, где каждый юзер имеет свои разрешения. Без этого любой сможет ковырять всё подряд.

Применяем изменения:

sudo systemctl restart mongod

Создание админа

Лезем в консоль Mongo:

mongo

Переключаемся на admin:

use admin

Создаём админа:

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

Да, пароль changeMe менять обязательно, иначе сюрприз будет не из приятных.

Выходим:

quit()

Проверка

Логинимся под админом:

mongo -u mongoAdmin -p --authenticationDatabase admin

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

show users

А теперь пробуем без пароля (просто mongo) — и убеждаемся, что без авторизации ничего не видно. Если всё видно — значит, ты где-то облажался.

Итог

Теперь у тебя есть Mongo 4.0 на Ubuntu 18.04, с включённой авторизацией и админом. Без сказок про "магический мир данных". Просто рабочая база, готовая принимать запросы и плеваться ошибками, если кто-то попытается сунуться без ключа.