Поиск по сайту:

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


Введение

MongoDB — это бесплатная база данных документов NoSQL с открытым исходным кодом, которая обычно используется в современных веб-приложениях. Это руководство поможет вам настроить MongoDB на вашем сервере для рабочей среды приложений.

Предпосылки

Чтобы следовать этому руководству, вам понадобятся:

  • Один сервер Ubuntu 16.04, настроенный в соответствии с этим руководством по начальной настройке сервера, включая пользователя без полномочий root и брандмауэр.

Шаг 1 — Добавление репозитория MongoDB

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

Ubuntu гарантирует подлинность программных пакетов, проверяя, подписаны ли они ключами GPG, поэтому сначала нам нужно импортировать их ключ для официального репозитория MongoDB.

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

После успешного импорта ключа вы увидите:

OK

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

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

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

После добавления сведений о репозитории нам нужно обновить список пакетов.

  1. sudo apt-get update

Шаг 2 — Установка и проверка MongoDB

Теперь мы можем установить сам пакет MongoDB.

  1. sudo apt-get install -y mongodb-org

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

Затем запустите MongoDB с помощью systemctl.

  1. sudo systemctl start mongod

Вы также можете использовать systemctl, чтобы проверить правильность запуска службы.

  1. sudo systemctl status mongod
● mongodb.service - High-performance, schema-free document-oriented database
   Loaded: loaded (/etc/systemd/system/mongodb.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2016-04-25 14:57:20 EDT; 1min 30s ago
 Main PID: 4093 (mongod)
    Tasks: 16 (limit: 512)
   Memory: 47.1M
      CPU: 1.224s
   CGroup: /system.slice/mongodb.service
           └─4093 /usr/bin/mongod --quiet --config /etc/mongod.conf

Последний шаг — включить автоматический запуск MongoDB при старте системы.

  1. sudo systemctl enable mongod

Теперь сервер MongoDB настроен и запущен, и вы можете управлять службой MongoDB с помощью команды systemctl (например, sudo systemctl stop mongod, sudo systemctl start mongod).

Шаг 3 — Настройка брандмауэра (необязательно)

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

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

Чтобы разрешить доступ к MongoDB через порт по умолчанию 27017 из любой точки мира, вы можете использовать sudo ufw allow 27017. Однако включение доступа через Интернет к серверу MongoDB при установке по умолчанию дает неограниченный доступ ко всему серверу базы данных.

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

  1. sudo ufw allow from your_other_server_ip/32 to any port 27017

Вы можете проверить изменение настроек брандмауэра с помощью ufw.

  1. sudo ufw status

В выходных данных вы должны увидеть разрешенный трафик на порт 27017. Если вы решили разрешить подключение к серверу MongoDB только определенному IP-адресу, вместо В любом месте в выходных данных.

Status: active

To                         Action      From
--                         ------      ----
27017                      ALLOW       Anywhere
OpenSSH                    ALLOW       Anywhere
27017 (v6)                 ALLOW       Anywhere (v6)
OpenSSH (v6)               ALLOW       Anywhere (v6)

Дополнительные параметры брандмауэра для ограничения доступа к службам описаны в UFW Essentials: общие правила и команды брандмауэра.

Заключение

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