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

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

Инструкция по установке и первичной настройке #MongoDB.

Экспорт параметров

  • Экспортировать заранее подготовленные параметры в переменные окружения:
1
 export MONGODB_VER='8.0'

Репозиторий

  • Скачать и установить ключ репозитория:
1
 [[ ! -v 'MONGODB_VER' ]] && return; curl -fsSL "https://lib.onl/ru/2025/02/08fbbde7-70fc-56d5-aa9e-2f27ea376109/mongodb-${MONGODB_VER}.asc" | gpg --dearmor -o '/etc/apt/keyrings/mongodb.gpg'
  • Создать файл репозитория /etc/apt/sources.list.d/mongodb.sources:
1
 [[ ! -v 'MONGODB_VER' ]] && return; . '/etc/os-release' && echo -e "X-Repolib-Name: MongoDB\nEnabled: yes\nTypes: deb\nURIs: http://repo.mongodb.org/apt/${ID}\n#URIs: https://mirror.yandex.ru/mirrors/repo.mongodb.org/apt/${ID}\nSuites: ${VERSION_CODENAME}/mongodb-org/${MONGODB_VER}\nComponents: main\nSigned-By: /etc/apt/keyrings/mongodb.gpg\n" | tee '/etc/apt/sources.list.d/mongodb.sources' > '/dev/null'

Установка

  • Установить пакеты:
1
 apt update && apt install --yes mongodb-org

Настройка

  • Скачать файл основной конфигурации mongod.conf в /etc/:
1
 f=('mongod'); d="/etc"; p='https://lib.onl/ru/2025/02/08fbbde7-70fc-56d5-aa9e-2f27ea376109'; for i in "${f[@]}"; do [[ -f "${d}/${i}.conf" && ! -f "${d}/${i}.conf.orig" ]] && mv "${d}/${i}.conf" "${d}/${i}.conf.orig"; curl -fsSLo "${d}/${i}.conf" "${p}/${i}.conf"; done

Включение авторизации

  • Запустить командную оболочку mongosh:
1
mongosh
  • Перейти в базу данных admin:
1
use admin
  • Создать пользователя admin с паролем PASSWORD и ролью root для базы данных admin:
1
db.createUser({user: "admin", pwd: "PASSWORD", roles: [{role: "root", db: "admin"}]})
  • Выйти из командной оболочки mongosh:
1
quit()
  • Добавить в файл /etc/mongod.conf следующие строки для включения авторизации:
1
2
security:
  authorization: enabled
  • Перезапустить mongod:
1
systemctl restart mongod
  • Запустить командную оболочку mongosh с включённой авторизацией:
1
mongosh 'mongodb://localhost:27017' --username 'admin' --authenticationDatabase 'admin'