MongoDB – это кроссплатформенная и распределенная система баз данных NoSQL (не-SQL или нереляционная) с открытым исходным кодом. Вместо того чтобы хранить данные в таблицах, как традиционные базы данных SQL, MongoDB использует гибкие документы для хранения различных форм данных. Для хранения данных MongoDB использует бинарный формат JSON – BSON.
MongoDB – это распределенная база данных NoSQL со встроенной функцией высокой доступности, автоматическим обходом отказа и избыточностью данных, а также горизонтальным масштабированием с помощью шардинга по распределенным кластерам. Она поддерживает многорегиональное географическое развертывание и предоставляет API запросов, поддерживающий операции CRUD (чтение и запись), конвейер агрегации данных, текстовый поиск и геопространственные запросы.
В этом руководстве мы покажем вам, как установить MongoDB на сервер Ubuntu 24.04. Вы подготовите свой сервер Ubuntu, добавите репозиторий MongoDB, установите сервер MongoDB, создадите администратора для MongoDB, а затем включите аутентификацию MongoDB. Наконец, вы узнаете, как создать пользователя и базу данных в MongoDB с помощью оболочки ‘mongosh’.
Подготовка системы
Перед установкой MongoDB на систему Ubuntu убедитесь, что вы настроили систему. В данном случае вы настроите сервер Ubuntu следующим образом:
- Отключение прозрачных огромных страниц через systemd
- Увеличение лимитов для пользователя MongoDB ‘mongod’ по умолчанию
- Установка максимального лимита fs.file-max и включить swappiness через ‘/etc/systctl.conf‘ файл
Отключение прозрачных огромных страниц (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
Настройка ограничений
После отключения 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 и включите возможность свопинга.
fs.file-max = 2097152 vm.max_map_count = 262144 vm.swappiness = 1
После завершения сохраните файл и выйдите из редактора.
Теперь запустите программу ‘sysctl‘ команда ниже, чтобы применить изменения без перезагрузки.
sudo sysctl -p
Установка MongoDB с помощью менеджера пакетов APT
Теперь, когда вы настроили свою систему Ubuntu, вы готовы к установке MongoDB. В этом разделе вы будете устанавливать последнюю версию MongoDB 8.0 из официального репозитория MongoDB.
Сначала запустите команду ‘apt‘ команда ниже, чтобы обновить индекс пакетов Ubuntu и установить ‘gnupg‘ и ‘curl‘ пакеты. Введите ‘Y‘, чтобы подтвердить установку.
sudo apt update && sudo apt install gnupg 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
Далее запустите команду ‘apt‘ команда ниже, чтобы обновить индекс пакетов и установить ‘mongodb-org‘ пакет в вашу систему. Ввод ‘Y‘, чтобы продолжить установку.
sudo apt update && sudo apt install mongodb-org
После завершения установки выполните команду ‘systemctl‘ команду ниже, чтобы перезагрузить менеджер systemd. Команда ‘mongod‘ служба добавлена в вашу систему Ubuntu.
sudo systemctl daemon-reload
Наконец, выполните приведенную ниже команду для запуска, включения и проверки MongoDB ‘mongod‘ service. Вы увидите, что MongoDB запущена в вашей системе.
sudo systemctl enable --now mongod sudo systemctl status mongod
Обеспечение безопасности сервера MongoDB
После установки MongoDB вам нужно будет обеспечить безопасность установки сервера MongoDB с помощью следующих действий:
- Создание нового пользователя-администратора для MongoDB с помощью ‘mongosh‘ оболочка
- Включите аутентификацию MongoDB, отредактировав конфигурацию ‘/etc/mongod.conf‘ файл
Создание пользователя-администратора MongoDB
В этом разделе вы создадите нового пользователя-администратора MongoDB с помощью оболочки ‘mongosh’. Оболочка ‘mongosh’ – это клиентская командная строка для взаимодействия с сервером MongoDB, она подобна ‘mysql’ для MySQL/MariaDB и ‘psql’ для PostgreSQL.
Чтобы создать пользователя admin, войдите на сервер MongoDB с помощью командной строки ‘mongosh‘ команда оболочки ниже.
mongosh
Теперь выполните следующий запрос, чтобы отключить телеметрию MongoDB.
disableTelemetry()
Далее перейдите к базе данных ‘admin‘ и выполните следующие запросы, чтобы создать нового пользователя-администратора для MongoDB. В этом примере вы создадите нового пользователя ‘myAdmin‘, затем введите новый пароль, когда появится запрос.
use admin
db.createUser( { user: "myAdmin", pwd: passwordPrompt(), roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { role: "readWriteAnyDatabase", db: "admin" } ] } )
Теперь введите ‘quit()‘ для выхода из оболочки MongoDB.
Включите аутентификацию 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’ и новых пользователя и пароля admin.
Войдите на сервер MongoDB под пользователем ‘myAdmin‘ с помощью ‘mongosh‘ команда ниже. Введите пароль при появлении запроса.
mongosh --port 27017 --authenticationDatabase \ "admin" -u "myAdmin" -p
После входа в систему выполните приведенный ниже запрос, чтобы проверить состояние соединения. Вы должны были войти на сервер MongoDB с помощью ‘myAdmin‘ пользователь.
db.runCommand({connectionStatus : 1})
Теперь введите ‘quit()‘ для выхода из сервера MongoDB.
Создание базы данных и пользователя в MongoDB
В этом разделе вы узнаете, как создать новую базу данных и пользователя в MongoDB с помощью оболочки ‘mongosh’. Поэтому убедитесь, что вы вошли в MongoDB как пользователь-администратор.
Сначала выполните приведенный ниже запрос, чтобы перейти к базе данных ‘mydb‘.
use mydb
Теперь выполните следующий запрос, чтобы создать нового пользователя ‘myUser‘ и разрешите доступ на чтение и запись к базе данных ‘mydb‘. Введите пароль, когда вас спросят.
db.createUser( { user: "myUser", pwd: passwordPrompt(), // or cleartext password roles: [ { role: "readWrite", db: "mydb" }, { role: "read", db: "reporting" } ] } )
Введите ‘выйти из игры()‘ для выхода из сервера MongoDB.
Теперь выполните приведенную ниже команду ‘mongosh’, чтобы войти в систему под именем ‘myUser‘ в базу данных ‘mydb‘. Введите пароль при появлении запроса.
mongosh --port 27017 --authenticationDatabase \ "mydb" -u "myUser" -p
После входа в систему проверьте состояние соединения с помощью следующего запроса.
db.runCommand({connectionStatus : 1})
Ниже видно, что вы подключились к серверу MongoDB с пользователем ‘myUser’ и привилегиями к базе данных ‘mydb‘.
Заключение
Поздравляем! Вы завершили установку сервера MongoDB на сервер Ubuntu 24.04. Вы также создали пользователя-администратора и обеспечили безопасность установки MongoDB. Затем вы узнали, как использовать ‘mongosh’ для подключения к серверу MongoDB и основные запросы для управления пользователями и базами данных в MongoDB.