Tutorial

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

Published on September 11, 2020

Manager, Developer Education

Русский
Установка MongoDB в Ubuntu 20.04

Предыдущая версия данного руководства была написана Мелиссой Андерсон.

Введение

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

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

В этом руководстве мы установим MongoDB на сервере Ubuntu 20.04, протестируем ее и узнаем, как управлять ею как службой systemd.

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

Для данного обучающего модуля вам потребуется следующее:

  • Один сервер Ubuntu 20.04. На сервере должен быть пользователь без привилегий root с правами администратора и брандмауэр, настроенный с помощью UFW. Вы можете выполнить настройку, следуя указаниям руководства Начальная настройка сервера для Ubuntu 20.04.

Шаг 1 — Установка MongoDB

Официальные репозитории пакетов Ubuntu включают стабильную версию MongoDB. Однако на момент написания этого документа версия MongoDB, доступная в репозиториях Ubuntu по умолчанию, — это версия 3.6, в то время как последний стабильный выпуск — это версия 4.4.

Чтобы получить самую последнюю версию этого программного обеспечения, вам нужно добавить выделенный репозиторий пакетов MongoDB в ваши источники APT. Теперь вы сможете установить mongodb-org, метапакет, который всегда указывает на последнюю версию MongoDB.

Для начала импортируйте публичный ключ GPG для последней стабильной версии MongoDB. Вы можете найти соответствующий файл ключа на сервере ключей MongoDB. Вам нужно найти файл, который включает номер последней стабильной версии и заканчивается на .asc. Например, если вы хотите установить MongoDB версии 4.4, необходимо искать файл с именем server-4.4.asc.

Нажмите правой кнопкой мыши на файл и выберите опцию Copy link address (Скопировать адрес ссылки). Затем вставьте эту ссылку в следующую команду curl, заменив выделенный URL:

  1. curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -

cURL — это инструмент командной строки, который доступен во многих операционных системах и используется для передачи данных. Он читает все данные, хранящиеся в переданном URL, и выводит содержание в вывод системы. В следующем примере cURL выводит содержание файла ключа GPG, а затем вводит его в команду sudo apt-key add -, добавляя ключ GPG в ваш список доверенных ключей.

Также обратите внимание, что команда curl использует опции -fsSL, которые вместе указывают cURL не выполнять скрипт без каких-либо обязательств. Это означает, что, если по какой-либо причине cURL не может связаться с сервером GPG, либо сервер GPG не работает, он не добавит полученный код ошибки к вашему списку доверенных ключей случайно.

Эта команда покажет вывод OK, если ключ добавлен успешно:

Output
OK

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

  1. apt-key list

Эта команда возвращает ключ MongoDB в выводе:

Output
/etc/apt/trusted.gpg -------------------- pub rsa4096 2019-05-28 [SC] [expires: 2024-05-26] 2069 1EEC 3521 6C63 CAF6 6CE1 6564 08E3 90CF B1F5 uid [ unknown] MongoDB 4.4 Release Signing Key <packaging@mongodb.com> . . .

На этом этапе ваша система APT все еще не знает, где искать пакет mongodb-org, который необходим для установки последней версии MongoDB.

На вашем сервере есть два места, где APT ищет онлайн-источники пакетов для загрузки и установки: файл sources.list и каталог sources.list.d. sources.list — это файл, который перечисляет активные источники данных APT (по одному источнику в строке, наиболее предпочтительные указываются первыми). Каталог sources.list.d позволяет добавлять такие записи sources.list в качестве отдельных файлов.

Запустите следующую команду, которая создает файл в каталоге sources.list.d под именем mongodb-org-4.4.list. В этом файле содержится только одна строка: deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse:

  1. echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

Эта единственная строка указывает APT все, что необходимо знать об источнике, и где его найти:

  • deb: означает, что источник ссылается на обычную архитектуру Debian. В других случаях эта часть строки может выглядеть как deb-src. Это означает, что источник представляет исходный код дистрибутива Debian.
  • [ arch=amd64,arm64 ]: указывает, в какие архитектуры загружать данные APT. В данном случае это архитектуры amd64 и arm64.
  • https://repo.mongodb.org/apt/ubuntu: это URI, представляющий местоположение данных APT. В данном случае URI указывает на адрес HTTPS, где находится официальный репозиторий MongoDB.
  • focal/mongodb-org/4.4: репозитории Ubuntu могут содержать несколько разных выпусков. Это означает, что вам нужна только версия 4.4 пакета mongodb-org, доступная для выпуска Ubuntu focal («Focal Fossa» — это кодовое название Ubuntu 20.04).
  • multiverse: эта часть указывает APT на один из четырех основных репозиториев Ubuntu. В данном случае — на репозиторий multiverse.

После запуска этой команды обновите локальный индекс пакетов вашего сервера, чтобы APT знал, где найти пакет mongodb-org:

  1. sudo apt update

После этого вы можете установить MongoDB:

  1. sudo apt install mongodb-org

При появлении запроса нажмите Y, а затем ENTER, чтобы подтвердить, что вы хотите установить пакет.

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

Шаг 2 — Начало работы службы MongoDB и тестирование базы данных

Процесс установки, описанный на предыдущем шаге, автоматически настраивает MongoDB для запуска в качестве демона с помощью systemd, а это означает, что вы можете управлять MongoDB, используя различные команды systemctl. Но данная процедура установки не запускает службу автоматически.

Выполните следующую команду systemctl, чтобы запустить службу MongoDB:

  1. sudo systemctl start mongod.service

Затем проверьте статус службы. Обратите внимание, что эта команда не включает .service в определение служебного файла. systemctl будет автоматически добавлять этот суффикс для любого аргумента, который вы передаете, если он еще не присутствует, поэтому нет необходимости включать его:

  1. sudo systemctl status mongod

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

Output
● mongod.service - MongoDB Database Server Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled) Active: active (running) since Tue 2020-06-09 12:57:06 UTC; 2s ago Docs: https://docs.mongodb.org/manual Main PID: 37128 (mongod) Memory: 64.8M CGroup: /system.slice/mongod.service └─37128 /usr/bin/mongod --config /etc/mongod.conf

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

  1. sudo systemctl enable mongod

Теперь вы можете убедиться, что база данных работает, подключившись к серверу базы данных и выполнив диагностическую команду. Следующая команда подключает к базе данных и выводит текущую версию, адрес сервера и порт. Также она выводит результат внутренней команды MongoDB connectionStatus:

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

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

Output
MongoDB shell version v4.4.0 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("1dc7d67a-0af5-4394-b9c4-8a6db3ff7e64") } MongoDB server version: 4.4.0 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }

Также обратите внимание, что база данных работает на порту 27017 на 127.0.0.1, локальном циклическом адресе, представляющем локальный хост localhost. Это номер порта MongoDB по умолчанию.

На следующем шаге мы рассмотрим, как управлять экземпляром сервера MongoDB с помощью systemd.

Шаг 3 — Управление службой MongoDB

Как уже упоминалось ранее, процесс установки, описанный в шаге 1, настраивает MongoDB для работы в качестве службы systemd. Это означает, что вы можете управлять ею, используя стандартные команды systemctl, используемые для работы с другими службами системы Ubuntu.

Как уже упоминалось ранее, команда systemctl status проверяет статус службы MongoDB:

  1. sudo systemctl status mongod

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

  1. sudo systemctl stop mongod

Чтобы запустить службу после остановки, введите команду:

  1. sudo systemctl start mongod

Также вы можете перезапустить сервер, когда он уже работает:

  1. sudo systemctl restart mongod

На шаге 2 вы установили активацию MongoDB автоматически при загрузке сервера. Если вы хотите отключить автоматический запуск, введите:

  1. sudo systemctl disable mongod

Для повторной установки активации при загрузке запустите команду enable снова:

  1. sudo systemctl enable mongod

Дополнительную информацию о том, как управлять службами systemd, можно найти в статье Основы работы с Systemd: работа со службами, блоками и журналом.

Заключение

В ходе выполнения этого обучающего руководства вы добавили официальный репозиторий MongoDB в ваш экземпляр APT и установили последнюю версию MongoDB. Затем вы протестировали функциональность Mongo и попробовали использовать некоторые команды systemctl.

В качестве непосредственного следующего шага мы настоятельно рекомендуем вам усилить защиту системы MongoDB с помощью нашего руководства Обеспечение безопасности MongoDB в Ubuntu 20.04. После того как вы обеспечили безопасность системы, вы можете настраивать MongoDB для удаленного подключения.

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

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about our products

About the authors
Default avatar

Manager, Developer Education

Technical Writer @ DigitalOcean

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Become a contributor for community

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

DigitalOcean Documentation

Full documentation for every DigitalOcean product.

Resources for startups and SMBs

The Wave has everything you need to know about building a business, from raising funding to marketing your product.

Get our newsletter

Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

New accounts only. By submitting your email you agree to our Privacy Policy

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.