Как установить MongoDB на Ubuntu 22.04

21 nov 2023 4 min di lettura
Как установить MongoDB на Ubuntu 22.04
Indice dei contenuti

Введение

MongoDB — бесплатная база данных документов с открытым исходным кодом. Она принадлежит к семейству баз данных NoSQL, которое отличается от традиционных баз данных SQL на основе таблиц, таких как MySQL и PostgreSQL. Данные в MongoDB хранятся в гибких документах типа JSON, поля которых могут различаться от документа к документу. Он не требует заранее определенной схемы, а структура данных может меняться со временем.

Некоторыми ключевыми функциями MongoDB являются репликация, индексирование, пользовательский поиск, балансировка нагрузки и выполнение JavaScript.

В этом руководстве описан пошаговый процесс установки MongoDB в Ubuntu.

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

Чтобы выполнить шаги установки, убедитесь, что вы запускаете команды от имени пользователя root или пользователя с привилегиями sudo на экземпляре Ubuntu 22.04 или 20.04.

Установка MongoDB в Ubuntu

Стандартные репозитории Ubuntu обычно включают устаревшую версию MongoDB. Мы установим официальные пакеты MongoDB, которые всегда актуальны. Установить MongoDB в Ubuntu довольно просто. Мы включим репозиторий MongoDB, импортируем ключ GPG репозитория и установим пакеты MongoDB.

На момент написания этой статьи последней версией MongoDB, доступной в официальных репозиториях MongoDB, была версия 7.0.

Первым шагом является установка зависимостей, необходимых для добавления нового репозитория. Эти пакеты, скорее всего, уже установлены в вашей системе, но некоторые пакеты могут отсутствовать:

sudo apt update
sudo apt install gnupg wget apt-transport-https ca-certificates software-properties-common

Затем импортируйте ключ GPG репозитория MongoDB в свою систему:

wget -qO- \
 https://pgp.mongodb.com/server-7.0.asc | \
 gpg --dearmor | \
 sudo tee /usr/share/keyrings/mongodb-server-7.0.gpg >/dev/null

Добавьте репозиторий MongoDB, создав следующий файл:

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] \
 https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/7.0 multiverse" | \
 sudo tee -a /etc/apt/sources.list.d/mongodb-org-7.0.list

Часть команды $(lsb_release -cs) выше печатает кодовое имя Ubuntu. Например, если у вас Ubuntu версии 22.04, команда выведет grok.

После включения репозитория обновите индекс локального пакета:

sudo apt update

Теперь вы можете установить MongoDB, набрав:

sudo apt install mongodb-org

mongodb-org — это метапакет, включающий следующие пакеты:

  • mongodb-org-server — демон mongod и соответствующие сценарии инициализации и конфигурации.
  • mongodb-org-mongos — Демон mongos e.
  • mongodb-org-shell — оболочка mongo, интерактивный интерфейс JavaScript для MongoDB. Он используется для выполнения административных задач через командную строку.
  • mongodb-org-tools — содержит несколько инструментов MongoDB для импорта и экспорта данных, статистики и других утилит.

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

sudo systemctl enable --now mongod

Мы можем проверить, прошла ли установка успешно, подключившись к серверу базы данных MongoDB с помощью инструмента оболочки mongosh и распечатав статус подключения:

mongosh --eval 'db.runCommand({ connectionStatus: 1 })'

Вывод будет выглядеть следующим образом:

Current Mongosh Log ID: 655a70dfea9d876644ee6607
 Connecting to: mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.0.2
 Using MongoDB: 7.0.3
 Using Mongosh: 2.0.2

 {
 authInfo: { authenticatedUsers: [], authenticatedUserRoles: [] },
 ok: 1
 }

Команда возвращает информацию о статусе соединения, аутентифицированных пользователях и их разрешениях. Значение 1 в поле ok указывает на успех.

Конфигурация МонгоБД

Файл конфигурации MongoDB находится в каталоге /etc и называется mongod.conf. Файл использует формат YAML.

Параметры конфигурации по умолчанию достаточны в большинстве случаев. Однако для производственных сред мы рекомендуем раскомментировать раздел безопасности и включить контроль доступа, как показано ниже:

sudo nano /etc/mongod.conf
security:
 authorization: enabled

Опция authorization включает управление доступом на основе ролей (RBAC), которое регулирует доступ пользователей к ресурсам и операциям базы данных. Если эта опция не включена, каждый пользователь будет иметь доступ ко всем базам данных и выполнять любые действия.

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

sudo systemctl restart mongod

Чтобы найти дополнительную информацию о параметрах конфигурации, доступных в последней версии MongoDB, посетите страницу документации «Параметры файла конфигурации».

Создание пользователя-администратора MongoDB

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

Войдите в оболочку mongo:

mongosh

В оболочке MongoDB введите следующую команду для подключения к базе данных admin:

use admin
switched to db admin

Выполните следующую команду, чтобы создать пользователя с правами администратора:

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

Мы назвали использование администратора «myMongoAdmin». Не стесняйтесь называть это как угодно. Вы также можете ввести пароль в виде открытого текста вместо метода passwordPrompt(), но не рекомендуется отображать пароль на экране, он также будет сохранен в истории оболочки.

Вам будет предложено ввести пароль, введите его и нажмите «Ввод». Не забудьте установить надежный пароль:

Enter password
********{ ok: 1 }

«ok: 1» означает, что команда выполнена успешно.

После этого выйдите из оболочки mongo с помощью:

quit()

Чтобы протестировать изменения, войдите в оболочку MongoDB, используя пользователя с правами администратора, которого вы создали ранее:

mongo -u myMongoAdmin -p --authenticationDatabase admin

Вы будете подключены к оболочке MogoDB, если введете правильный пароль.

Переключитесь на базу данных «admin» и запустите show users, чтобы получить информацию обо всех пользователях и их ролях:

use admin
switched to db admin
show users

В нашем примере у нас есть только один пользователь:

[
 {
 _id: 'admin.myMongoAdmin',
 userId: new UUID("a00ab5ca-5c1f-4a3b-8f67-be8a79c7649c"),
 user: 'myMongoAdmin',
 db: 'admin',
 roles: [
 { role: 'userAdminAnyDatabase', db: 'admin' },
 { role: 'readWriteAnyDatabase', db: 'admin' }
 ],
 mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]
 }
 ]

Заключение

Мы показали вам, как установить и настроить MongoDB в Ubuntu 20.04 и 22.04. Для получения дополнительной информации по этой теме посетите MongoDB Handbook.

Если вы столкнулись с проблемой или хотите оставить отзыв, пожалуйста, оставьте комментарий ниже.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.