Поиск по сайту:

Как установить MongoDB на Debian 12


Это руководство существует для этих версий ОС.

  • Debian 12 (Книжный червь)
  • Debian 11 (Яблочко)

На этой странице

  1. Предварительные условия
  2. Подготовка сервера Debian
  3. Установка сервера MongoDB на Debian
  4. Защита сервера MongoDB с помощью аутентификации
  5. Проверка аутентификации MongoDB
  6. Создание первой базы данных и пользователя
  7. Заключение

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

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

В этом руководстве вы узнаете, как установить MongoDB на сервер Debian 12. Вы также узнаете, как включить аутентификацию MongoDB, использовать клиент MongoDB «mongosh» и использовать базовые запросы для создания нового пользователя и базы данных в MongoDB.

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

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

  • Сервер Debian 12
  • Пользователь без полномочий root с правами администратора

Подготовка сервера Debian

Перед установкой MongoDB на ваш сервер Debian рекомендуется применить следующие настройки:

  • Отключите прозрачные огромные страницы (THP) через скрипт systemd.
  • Увеличьте ограничения по умолчанию для пользователя MongoDB.
  • Включите возможность подкачки и увеличьте память max_mmap с помощью файла «/etc/sysctl.conf».

Теперь давайте настроим сервер Debian.

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

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

Вставьте следующий служебный скрипт, чтобы настроить для параметра «transparent_hugepage» значение «никогда».

[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». При этом страница «transparent_hugepage» будет отключаться при каждом запуске системы.

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

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

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

Вставьте конфигурацию ниже, чтобы настроить процесс максимальных ограничений и файл «64000» для пользователя «mongod».

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

По завершении сохраните файл и выйдите.

После этого отредактируйте файл «/etc/sysctl.conf», указав следующее.

sudo nano /etc/sysctl.conf

Вставьте приведенную ниже конфигурацию в конец строки.

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

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

Наконец, запустите приведенную ниже команду «sysctl», чтобы немедленно применить изменения в файле «/etc/sysctl.conf».

sudo sysctl -p

Установка сервера MongoDB на Debian

Теперь, когда вы настроили свой сервер Debian, приступим к установке MongoDB. В этом случае вы установите MongoDB 7.0 через официальный репозиторий MongoDB на свой сервер Debian.

Установите пакеты «gnupg» и «curl» в свою систему Debian следующим образом:

sudo apt install gnupg curl

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

curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg \
--dearmor
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

Затем выполните приведенную ниже команду «apt», чтобы обновить список пакетов и установить пакет «mongodb-org».

sudo apt update && sudo apt install mongodb-org -y

В следующем выводе вы можете увидеть установку MongoDB.

После завершения установки перезагрузите менеджер systemd с помощью команды systemctl.

sudo systemctl daemon-reload

Запустите и включите службу «mongod», затем проверьте ее, чтобы убедиться, что служба работает.

sudo systemctl enable --now mongod
sudo systemctl status mongod

Если MongoDB запущен, вы увидите следующий результат:

Защита сервера MongoDB с помощью аутентификации

После установки MongoDB вам необходимо защитить свою установку, включив аутентификацию MongoDB. В этом разделе вы настроите аутентификацию MongoDB и создадите нового администратора для MongoDB. Здесь вы узнаете, как использовать клиент «mongosh» или MongoDB и основные запросы MongoDB.

Войдите на сервер MongoDB с помощью команды «mongosh» ниже. Для установки MongoDB по умолчанию пароль отсутствует.

mongosh

Запустите команду «disableTelemetry()», чтобы отключить анонимный сбор данных из MongoDB.

disableTelemetry()

Переключитесь на базу данных «admin» с помощью запроса «use».

use admin

Теперь выполните следующий запрос, чтобы создать нового пользователя «myAdmin», который будет использоваться в качестве администратора вашего сервера MongoDB. Введите свой пароль, когда его спросят.

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

Введите команду «quit()», чтобы выйти с сервера MongoDB.

quit()

Затем отредактируйте файл «/etc/mongod.conf» с помощью редактора «nano».

sudo nano /etc/mongod.conf

Раскомментируйте параметр «security» и добавьте «authorization: Enabled», чтобы включить аутентификацию в MongoDB.

security:
  authorization: enabled

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

Теперь выполните приведенную ниже команду «systemctl», чтобы перезапустить сервер MongoDB и применить изменения.

sudo systemctl restart mongod

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

Теперь, когда вы создали пользователя-администратора и включили аутентификацию на своем сервере MongoDB. Давайте проверим вашу конфигурацию, войдя на сервер MongoDB через пользователя 'myAdmin'.

Запустите команду «mongosh», чтобы войти на сервер MongoDB как пользователь «myAdmin», и введите свой пароль при появлении запроса.

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

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

db.runCommand({connectionStatus : 1})

Ниже вы можете видеть, что вы подключились как пользователь «myAdmin» к серверу MongoDB.

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

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

Сначала запустите запрос «use», чтобы создать и переключить целевую базу данных. В этом примере вы создадите новую базу данных «mydb». Ваше приглашение MongoDB изменится на «mydb».

use mydb

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

use mydb
db.createUser(
{
user: "myUser",
pwd: passwordPrompt(),
roles: [ { role: "readWrite", db: "mydb" },
{ role: "read", db: "reporting" } ]
}
)

Затем выполните следующие запросы, чтобы переключить базу данных «admin» и проверить список пользователей на вашем сервере MongoDB.

use admin
db.system.users.find()

Вы должны увидеть пользователей «myAdmin» и «myUser», созданных следующим образом:

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

Наконец, войдите на сервер MongoDB как новый пользователь «myUser» в базу данных «mydb» с помощью приведенной ниже команды. Введите свой пароль при появлении запроса.

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

Запустите запрос ниже, чтобы проверить текущее соединение

db.runCommand({connectionStatus : 1})

В разделе «authInfo» вы можете увидеть, что вы прошли аутентификацию как пользователь «myUser» и база данных «mydb».

Заключение

Поздравляем! Вы завершили установку MongoDB 7.0 на сервер Debian 12. Вы также узнали, как защитить сервер MongoDB, включив аутентификацию, а затем создав нового пользователя-администратора для MongoDB. Наконец, вы узнали, как создать новую базу данных MongoDB и пользователя для своих приложений.

Статьи по данной тематике: