Установка и настройка MongoDB на Ubuntu 22.04 — простая задача, которая не займет у вас много времени. Однако некоторые шаги могут показаться сложными для новичков, поэтому мы составили это руководство. Это руководство поможет вам узнать, как установить и настроить MongoDB 5.0.9 на Ubuntu 22.04.
Предпосылки:
MongoDB — это ориентированная на документы программа базы данных NoSQL, отличающаяся исключительной производительностью. Это бесплатное решение с открытым исходным кодом, опубликованное под Стандартной общественной лицензией GNU Affero (GPL) и обычно используемое в современных веб-приложениях. Приложение демонстрирует лучшие качества распределенной базы данных по своей сути. Поэтому горизонтальное масштабирование, географическое распределение и высокая доступность встроены.
MongoDB написан на языке C++ и хранит данные в формате Binary JSON (BSON). Гибкие документы, подобные JSON, означают, что поля данных могут варьироваться от одного документа к другому, а структура может изменяться с течением времени. Кроме того, база данных предлагает уникальные пакеты только для 64-битных выпусков Ubuntu с долгосрочной поддержкой (LTS). Например, последняя версия Ubuntu 22.04 (Jammy Jellyfish), Ubuntu 20.04 (Focal Fossa), Ubuntu 18.04 (Bionic Beaver), Ubuntu 16.04 (Xenial XERUS) и Ubuntu 14.04 (Trusty Tahr).
Плюсы | Минусы |
Он хранит почти все данные в оперативной памяти, что позволяет повысить производительность. | Объединение документов утомительно, потому что MongoDB не поддерживает соединения в качестве реляционной базы данных. |
Это просто и легко понять | Он работает на низких скоростях, когда индексация выполняется неправильно |
Процесс настройки прост и быстр | Он ограничивает размер документа до 16 МБ на документ. |
Он работает на динамической схематической архитектуре, совместимой с неструктурированными данными и хранилищем. | Вложенность производительности для документов ограничена 100 уровнями. |
Он использует сегментирование с большими наборами данных | Требуется большой объем памяти из-за отсутствия функций объединения, что приводит к дублированию данных. |
Он использует горизонтальную масштабируемость | |
Он предлагает расширенную функцию специальных запросов. | |
Он предлагает точную документацию и не привязывается к данным при их обработке. | |
Он предлагает экспертную поддержку клиентов |
Часть первая: установка MongoDB | Шаг 1: Установите зависимостиШаг 2: Создайте репозиторий MongoDB
Шаг 3. Импортируйте открытый ключ GPG. Шаг 4: Обновите репозиторий Шаг 5: Установите MongoDB |
Часть вторая: настройка имени пользователя/пароля MongoDB | Шаг 1: Откройте оболочку монгоШаг 2. Смените администратора базы данных
Шаг 3: Создайте пользователя root Шаг 4. Включите аутентификацию MongoDB Шаг 5: Перезапустите MongoDB |
Часть третья — Управление недавно установленной службой MongoDB | Проверка статусаЧтобы остановить MongoDB
Чтобы запустить MongoDB Чтобы перезапустить MongoDB |
Часть четвертая: Настройка параметров брандмауэра | Разрешить UFW порт 27017 |
Сначала установите зависимости mongodb с помощью этой команды:
$ sudo apt update $ sudo apt install dirmngr gnupg apt-transport-https ca-certificates software-properties-common
После импорта ключа следующим шагом будет создание файла списка для MongoDB в «/etc/apt/sources.list.d/». Запустите команду ниже:
$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
К настоящему времени MongoDB еще не выпустила пакеты для Ubuntu 20.04 (Focal fossa), но фокус должен нормально работать на вашей Ubuntu 22.04 LTS. В некоторых случаях вы можете посетить этот URL перед выполнением вышеуказанной команды. Если на веб-странице появляется каталог «focal», вы должны заменить термин «jemmy» в приведенной выше команде термином «focal».
Усовершенствованный пакетный инструмент Ubuntu (менеджер пакетов apt) требует GNU Privacy Guard (GPG) дистрибьютора программного обеспечения для аутентификации и обеспечения согласованности пакета. По этой причине первым шагом при установке MongoDB является импорт ключа GPG на ваш сервер Ubuntu. Выполните следующую команду, чтобы импортировать ключ:
$ wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
К настоящему времени у вас есть репозиторий для вашей MongoDB 5.0. Затем вы должны выполнить команду обновления, чтобы разрешить Ubuntu читать пакеты из только что созданного репозитория. Чтобы обновить репозиторий, выполните следующую команду apt:
$ sudo apt-get update
Вот и все, все готово для установки MongoDB.
Теперь введите следующую команду, чтобы начать установку MongoDB из репозитория:
sudo apt-get install -y mongodb-org
Через некоторое время mongodb будет полностью установлен в вашей системе.
Если вы получите сообщение об отсутствующих пакетах, вы выполните следующие команды, чтобы устранить эту ошибку:
$ echo "deb http://security.ubuntu.com/ubuntu impish-security main" | sudo tee /etc/apt/sources.list.d/impish-security.list $ sudo apt-get update $ sudo apt-get install libssl1.1
Теперь установите mongodb с помощью этой команды:
$ sudo apt-get install -y mongodb-org
После завершения установки отобразите установленную версию:
$ mongo --version
Установщик apt MongoDB автоматически создаст файл mongod.service для systemd. Однако вы можете создать его вручную, если он не создается автоматически. В файле системного модуля хранится информация о сокетах, службах, устройствах и других ресурсах, которыми управляет система. Создайте файл в каталоге /etc/systemd/system/, используя следующий nano:
# sudo nano /etc/systemd/system/mongodb.service
Затем скопируйте и вставьте текст ниже:
[Unit] Description=High-performance, schema-free document-oriented database After=network.target Documentation=https://docs.mongodb.org/manual [Service] User=mongodb Group=mongodb ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf [Install] WantedBy=multi-user.target
Нажмите Ctrl + O, чтобы сохранить файл, и Ctrl + X, чтобы закрыть его. Затем обновите systemd, чтобы включить только что созданную службу, затем включите и запустите службу.
Установщик MongoDB apt автоматически запустит службу mongodb в вашей системе. Кроме того, вы также можете включить и перезапустить службу MongoDB, используя следующие команды:
# sudo systemctl daemon-reload # sudo systemctl enable mongod # sudo systemctl start mongod
Подтвердите, что служба запущена, используя следующую команду:
# systemctl status mongod
К настоящему времени вы установили все пакеты MongoDB. Затем следует настроить имя пользователя и пароль для сервера базы данных.
Перед настройкой имени пользователя и пароля вы должны открыть оболочку MongoDB для вашего сервера базы данных. Введите:
# mongo
Если вы получаете сообщение об ошибке:
Failed global initialization: badvalue invalid or no user locale set. Please ensure LANG and/or LC_* environment variables are correctly set.
Затем используйте команду ниже;
export LC_ALL=C mongo
После того, как вы вошли в оболочку, введите команду ниже, чтобы переключиться на базу данных администратора:
>use admin
Теперь вы можете создать имя пользователя администратора, а затем создать его пароль. Для этого используйте следующую команду:
db.createUser({user:"admin", pwd:"admin123", roles:[{role:"root", db:"admin"}]})
Из приведенной выше команды видно, что вы создали пользователя с именем admin и паролем, установленным как admin123. Пользователь имеет роль/разрешение в качестве пользователя root, тогда как база данных является администратором.
Значение пароля можно заменить вашим уникальным значением, например, вы можете установить пароль как MyPassword.
Приведенная выше команда выдаст следующий вывод:
Выйдите из оболочки MongoDB, набрав exit.
Найдите и откройте «/lib/systemd/system/mongod.service» с помощью редактора nano:
# sudo nano /lib/systemd/system/mongod.service
В строке ExecStart включите необязательную строку аргумента:
ExecStart=/usr/bin/mongod --quiet --auth --config /etc/mongod.conf
Нажмите Ctrl+O, чтобы сохранить, и Ctrl+X, чтобы выйти из nano.
Затем обновите систему, чтобы включить новую версию скорректированного служебного файла.
systemctl daemon-reload
Теперь перезапустите MongoDB, чтобы все внесенные изменения вступили в силу. Используйте следующую команду:
# sudo systemctl restart mongod
Затем выполните команду ниже, чтобы подключиться к оболочке:
# mongo -u admin -p --authenticationDatabase admin
Вам будет предложено ввести пароль, как указано выше. После входа в оболочку MongoDB убедитесь, что вы являетесь аутентифицированным пользователем, созданным ранее. Выполните следующую команду:
> db.runCommand({connectionStatus : 1})
Вы получите следующий вывод:
Вот оно!
После полной установки MongoDB она проявляется как служба systemd, что означает, что ею можно управлять с помощью команды systemd. Ниже приведены команды systemd, которые можно использовать для управления MongoDB:
Чтобы проверить состояние службы MongoDB, выполните следующую команду:
$ sudo systemctl status MongoDB
Сервер базы данных MongoDB можно остановить в любое время, выполнив следующую команду:
$ sudo systemctl stop MongoDB
С другой стороны, службу можно запустить, выполнив следующую команду:
$ sudo systemctl start MongoDB
Кроме того, сервер базы данных MongoDB можно перезапустить с помощью одной команды:
$ sudo systemctl disable mongodb
А чтобы включить MongoDB, вы можете запустить команду ниже:
$ sudo systemctl enable MongoDB
В некоторых случаях, когда на Ubuntu Server включен брандмауэр, доступ к серверу MongoDB может быть ограничен. Этот параметр идеален и безопасен, если вы планируете использовать сервер MongoDB локально с приложениями, работающими на том же сервере.
Однако, если вы собираетесь подключаться к серверу базы данных MongoDB из Интернета, вам следует включить входящие подключения в Uncomplicated Firewall (UFW). По умолчанию сервер MongoDB работает на порту 27017, и чтобы разрешить доступ к MongoDB через этот порт; вы можете запустить команду sudo ufw allow 27017 . Однако разрешение доступа к серверу базы данных MongoDB через порт по умолчанию обеспечивает неограниченный доступ к данным и самому серверу.
По этой причине всегда разумно разрешать доступ только к определенным местам. Для этого вы разрешаете доступ к порту по умолчанию, но указываете IP-адрес другого сервера с явными правами на подключение к серверу базы данных. Запустите команду ниже:
$ sudo ufw allow from your_other_server_ip/32 to any port 27017
Затем выполните команду ниже, чтобы проверить состояние брандмауэра:
$ sudo ufw allow 27017 $ sudo ufw status
Это даст вам результат, подобный приведенному ниже:
Вывод ясно показывает, что порт 27017 разрешен везде. Если вы разрешили определенному IP-адресу доступ к серверу базы данных, вы должны увидеть в приведенном выше выводе разрешенный IP-адрес, а не Anywhere .
Теперь, несмотря на то, что порт по умолчанию открыт, сервер базы данных в настоящее время прослушивает 127.0.0.1. Чтобы разрешить удаленные подключения, вы должны включить общедоступный IP-адрес вашего сервера в файл Mongo.conf.
Запустите команду ниже, чтобы открыть файл Mongo.conf:
$ sudo nano /etc/mongodb.conf
Найдите значение bind_ip и добавьте нужный IP-адрес:
... logappend=true bind_ip = 127.0.0.1,your_server_ip #port = 27017 ...
Запятая должна быть помещена перед добавлением IP-адреса, который вы хотите разрешить. Как только это будет сделано, сохраните изменения и выйдите из редактора.
Затем перезапустите MongoDB:
$ sudo systemctl restart mongodb
Вот и все! Вы успешно изменили настройки брандмауэра.
Вы успешно установили и настроили MongoDB в Ubuntu 22.04. Наслаждайтесь высокой доступностью, высокой производительностью и автоматическим масштабированием MongoDB. Быстро запустите MongoDB и наслаждайтесь удобством и удовольствием от создания своих приложений.