Введение
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.
Если вы столкнулись с проблемой или хотите оставить отзыв, пожалуйста, оставьте комментарий ниже.