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

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

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

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

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

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

  • Сервер Debian 12
  • Некорневой пользователь с правами администратора

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

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

  • Отключить прозрачные огромные страницы (THP) с помощью скрипта systemd
  • Увеличьте лимиты по умолчанию для пользователя MongoDB
  • Включите swapiness и увеличьте 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

установить gnupe curl

Теперь добавьте GPG-ключ MongoDB и репозиторий для 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.

установить mongodb

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

sudo systemctl daemon-reload

Запустите и включите службу ‘mongod’, а затем проверьте, запущена ли она.

sudo systemctl enable --now mongod
sudo systemctl status mongod

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

проверить mongodb

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

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

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

mongosh

Выполните команду ‘disableTelemetry()‘ для отключения анонимного сбора данных из MongoDB.

disableTelemetry()

отключить телеметрию

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

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

Снимите комментарий с ‘безопасность‘ и добавьте опцию ‘авторизация: включена‘, чтобы включить авторизацию на MongoDB.

security:
authorization: enabled

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

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

sudo systemctl restart mongod

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

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

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

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

вход в mongodb

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

db.runCommand({connectionStatus : 1})

Ниже видно, что вы подключились как пользователь ‘myAdmin‘ на сервер MongoDB.

проверка соединения

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

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

Сначала запустите программу ‘использовать‘ запрос для создания и переключения целевой базы данных. В этом примере вы создадите новую базу данных ‘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

вход в mongodb

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

db.runCommand({connectionStatus : 1})

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

проверка соединения

Заключение

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *