MongoDB установка · 6 min read · Sep 15, 2025

Как установить и защитить MongoDB на Ubuntu 24.04

MongoDB — это система управления базами данных NoSQL (не SQL или нереляционная) с открытым исходным кодом, кроссплатформенная и распределенная. Вместо хранения данных в таблицах, как в традиционных SQL базах данных, MongoDB использует гибкие документы для хранения различных форм данных. MongoDB использует бинарный формат JSON, BSON, для хранения данных.

MongoDB — это распределенная NoSQL база данных с встроенной высокой доступностью, автоматическим переключением на резервный сервер и избыточностью данных, а также горизонтальным масштабированием через шардирование по распределенным кластерам. Она поддерживает многоуровневое географическое развертывание и предоставляет API запросов, который поддерживает операции CRUD (чтение и запись), конвейер агрегации данных, текстовый поиск и геопространственные запросы.

В этом руководстве мы покажем вам, как установить MongoDB на сервер Ubuntu 24.04. Вы подготовите свой сервер Ubuntu, добавите репозиторий MongoDB, установите сервер MongoDB, создадите администратора для MongoDB, а затем включите аутентификацию MongoDB. Наконец, вы узнаете, как создать пользователя и базу данных в MongoDB с помощью оболочки ‘mongosh’.

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

Перед тем как начать, убедитесь, что у вас есть следующее:

  • Сервер Ubuntu 24.04
  • Пользователь не root с правами администратора

Подготовка системы

Перед установкой MongoDB на вашу систему Ubuntu убедитесь, что вы настроили свою систему. В этом случае вы будете настраивать сервер Ubuntu следующим образом:

  • Отключите Transparent Huge Pages через systemd
  • Увеличьте лимиты для пользователя по умолчанию ‘mongod’
  • Настройте максимальное fs.file-max и включите swappiness через файл ‘ /etc/systctl.conf

Отключение Transparent Huge Pages (THP)

Чтобы отключить THP на вашей системе, вы создадите новый файл службы systemd, который будет выполняться автоматически при каждом запуске.

Создайте новый файл службы ‘/ etc/systemd/system/disable-thp.service ‘ с помощью редактора ‘nano’.

sudo nano /etc/systemd/system/disable-thp.service

Вставьте следующую конфигурацию, чтобы отключить THP через службу.

[Unit]  
Description=Disable Transparent Huge Pages (THP)  
  
[Service]  
Type=simple  
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"  
  
[Install]  
WantedBy=multi-user.target

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

Теперь выполните команду ‘ systemctl ‘ ниже, чтобы перезагрузить менеджер systemd, запустить и включить службу ‘ disable-thp ‘. С этим THP будет отключен при запуске системы.

sudo systemctl daemon-reload  
sudo systemctl enable --now disable-thp.service

Настройка Ulimits

После того как вы отключили THP, вам нужно увеличить максимальное количество открытых файлов и процессов для пользователя ‘mongod’ как минимум до ‘ 64000 ‘.

Создайте новый файл ‘ /etc/security/limits.d/mongodb.conf ‘ с помощью следующей команды редактора ‘nano’.

sudo nano /etc/security/limits.d/mongodb.conf

Вставьте следующую конфигурацию, чтобы увеличить максимальное количество открытых файлов и процессов до ‘ 64000 ‘.

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

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

Настройка swappiness и fs.file-max

Наконец, вам нужно увеличить значение по умолчанию ‘ fs.file-max ‘ и включить swappiness для MongoDB. Для этого вам нужно будет отредактировать файл ‘ /etc/sysctl.conf ‘.

Откройте файл ‘ /etc/sysctl.conf ‘ с помощью команды редактора ‘nano’.

sudo nano /etc/sysctl.conf

Вставьте следующую конфигурацию, чтобы настроить fs.file-max и включить swappiness.

fs.file-max = 2097152  
vm.max_map_count = 262144  
vm.swappiness = 1

Когда закончите, сохраните файл и выйдите из редактора.

Теперь выполните команду ‘ sysctl ‘ ниже, чтобы применить ваши изменения без перезагрузки.

sudo sysctl -p

setup system

Установка MongoDB с помощью менеджера пакетов APT

Теперь, когда вы настроили свою систему Ubuntu, вы готовы установить MongoDB. В этом разделе вы будете устанавливать последнюю версию MongoDB 8.0 из официального репозитория MongoDB.

Сначала выполните команду ‘ apt ‘ ниже, чтобы обновить индекс пакетов Ubuntu и установить пакеты ‘ gnupg ‘ и ‘ curl ‘. Введите ‘ Y ‘, чтобы подтвердить установку.

sudo apt update && sudo apt install gnupg curl

install curl

Теперь выполните следующую команду, чтобы добавить GPG ключ и репозиторий для MongoDB. В этом примере вы будете устанавливать MongoDB 8 на своем сервере Ubuntu 24.04.

curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \  
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \  
--dearmor
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

install mongodb

Затем выполните команду ‘ apt ‘ ниже, чтобы обновить индекс пакетов и установить пакет ‘ mongodb-org ‘ в вашу систему. Введите ‘ Y ‘, чтобы продолжить установку.

sudo apt update && sudo apt install mongodb-org

install mongodb

После завершения установки выполните команду ‘ systemctl ‘ ниже, чтобы перезагрузить менеджер systemd. Служба ‘ mongod ‘ добавлена в вашу систему Ubuntu.

sudo systemctl daemon-reload

Наконец, выполните команду ниже, чтобы запустить, включить и проверить службу MongoDB ‘ mongod ‘. Вы увидите, что MongoDB работает на вашей системе.

sudo systemctl enable --now mongod  
sudo systemctl status mongod

check mongodb service

Защита сервера MongoDB

После установки MongoDB вы будете защищать установку сервера MongoDB следующим образом:

  • Создание нового администратора для MongoDB с помощью оболочки ‘ mongosh
  • Включение аутентификации MongoDB путем редактирования конфигурационного файла ‘ /etc/mongod.conf

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

В этом разделе вы будете создавать нового администратора MongoDB через оболочку ‘mongosh’. Оболочка ‘mongosh’ — это клиентская командная строка для взаимодействия с сервером MongoDB, она похожа на ‘mysql’ для MySQL/MariaDB и ‘psql’ для PostgreSQL.

Чтобы создать администратора, войдите на сервер MongoDB с помощью команды оболочки ‘ mongosh ‘ ниже.

mongosh

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

disableTelemetry()

login to mongodb

Затем перейдите в базу данных ‘ admin ‘ и выполните следующие запросы, чтобы создать нового администратора для MongoDB. В этом примере вы создадите нового пользователя ‘ myAdmin ‘, затем введите свой новый пароль, когда будет предложено.

use admin
db.createUser(  
{  
user: "myAdmin",  
pwd: passwordPrompt(),  
roles: [  
{ role: "userAdminAnyDatabase", db: "admin" },  
{ role: "readWriteAnyDatabase", db: "admin" }  
]  
}  
)

Теперь введите ‘ quit() ‘, чтобы выйти из оболочки MongoDB.

create admin

Включение аутентификации MongoDB

Теперь, когда вы создали администратора MongoDB, вы готовы включить аутентификацию MongoDB через файл ‘ /etc/mongod.conf ‘.

Откройте конфигурацию сервера MongoDB по умолчанию ‘ /etc/mongod.conf ‘ с помощью следующей команды редактора ‘nano’.

sudo nano /etc/mongod.conf

Добавьте следующие строки, чтобы включить аутентификацию в MongoDB.

security:  
 authorization: enabled

Когда закончите, сохраните файл и выйдите из редактора.

Теперь выполните команду ‘ systemctl ‘ ниже, чтобы перезапустить сервер MongoDB и применить ваши изменения. С этим аутентификация MongoDB будет включена.

sudo systemctl restart mongod

Тестирование аутентификации MongoDB

Теперь, когда вы защитили установку сервера MongoDB, давайте проверим вашу конфигурацию, войдя в MongoDB с помощью оболочки ‘mongosh’ и нового администратора и пароля.

Войдите на сервер MongoDB как пользователь ‘ myAdmin ‘ с помощью команды ‘ mongosh ‘ ниже. Введите свой пароль, когда будет предложено.

mongosh --port 27017 --authenticationDatabase \  
"admin" -u "myAdmin" -p

login to mongodb

После входа выполните запрос ниже, чтобы проверить статус вашего соединения. Вы должны были войти на сервер MongoDB как пользователь ‘ myAdmin ‘.

db.runCommand({connectionStatus : 1})

Теперь введите ‘ quit() ‘, чтобы выйти с сервера MongoDB.

check connection

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

В этом разделе вы узнаете, как создать новую базу данных и пользователя в MongoDB с помощью оболочки ‘mongosh’. Поэтому убедитесь, что вы вошли в MongoDB как администратор.

Сначала выполните запрос ниже, чтобы перейти к базе данных ‘ mydb ‘.

use mydb

Теперь выполните следующий запрос, чтобы создать нового пользователя ‘ myUser ‘ и разрешить доступ на чтение и запись к базе данных ‘ mydb ‘. Введите свой пароль, когда будет предложено.

db.createUser(  
{  
user: "myUser",  
pwd: passwordPrompt(), // или открытый текст пароля  
roles: [ { role: "readWrite", db: "mydb" },  
{ role: "read", db: "reporting" } ]  
}  
)

Введите ‘ quit() ‘, чтобы выйти с сервера MongoDB.

create database and user

Теперь выполните команду ‘mongosh’ ниже, чтобы войти как ‘ myUser ‘ в базу данных ‘ mydb ‘. Введите свой пароль, когда будет предложено.

mongosh --port 27017 --authenticationDatabase \  
"mydb" -u "myUser" -p

login as new user

После входа проверьте статус вашего соединения, используя следующий запрос.

db.runCommand({connectionStatus : 1})

Вы можете увидеть ниже, что вы подключены к серверу MongoDB с пользователем ‘myUser’ и правами на базу данных ‘ mydb ‘.

check connection

Заключение

Поздравляем! Вы завершили установку сервера MongoDB на сервере Ubuntu 24.04. Вы также создали администратора и защитили установку MongoDB. Затем вы узнали, как использовать ‘mongosh’ для подключения к серверу MongoDB и основные запросы для управления пользователями и базами данных в MongoDB.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.