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

Автор выбралCreative Commons Corporation для получения пожертвования в размере 100 долларов в рамках программыWrite for DOnations.

Вступление

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

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

Предпосылки

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

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

[[step-1 -—- install-mongodb]] == Шаг 1. Установка MongoDB

Официальные репозитории пакетов Ubuntu включают последнюю версию MongoDB, что означает, что мы можем установить необходимые пакеты с помощьюapt.

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

sudo apt update

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

sudo apt install -y mongodb

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

Далее, давайте проверим, что сервер работает и работает правильно.

[[step-2 -—- verify-the-service-and-database]] == Шаг 2 - Проверка службы и базы данных

Процесс установки запустил MongoDB автоматически, но давайте проверим, что служба запущена и база данных работает.

Сначала проверьте статус сервиса:

sudo systemctl status mongodb

Вы увидите этот вывод:

Output● mongodb.service - An object/document-oriented database
   Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-05-26 07:48:04 UTC; 2min 17s ago
     Docs: man:mongod(1)
 Main PID: 2312 (mongod)
    Tasks: 23 (limit: 1153)
   CGroup: /system.slice/mongodb.service
           └─2312 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf

Согласноsystemd, сервер MongoDB запущен и работает.

Мы можем проверить это далее, фактически подключившись к серверу базы данных и выполнив диагностическую команду

Выполните эту команду:

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

Это выведет текущую версию базы данных, адрес и порт сервера, а также вывод команды status:

OutputMongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
{
        "authInfo" : {
                "authenticatedUsers" : [ ],
                "authenticatedUserRoles" : [ ]
        },
        "ok" : 1
}

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

Далее мы рассмотрим, как управлять экземпляром сервера.

[[step-3 -—- management-the-mongodb-service]] == Шаг 3 - Управление службой MongoDB

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

Чтобы проверить статус службы, введите:

sudo systemctl status mongodb

Вы можете остановить сервер в любое время, набрав:

sudo systemctl stop mongodb

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

sudo systemctl start mongodb

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

sudo systemctl restart mongodb

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

sudo systemctl disable mongodb

Это так же легко, чтобы включить его снова. Для этого используйте:

sudo systemctl enable mongodb

Далее, давайте настроим параметры брандмауэра для нашей установки MongoDB.

[[step-4 -—- adjusting-the-firewall-optional]] == Шаг 4. Настройка брандмауэра (необязательно)

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

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

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

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

sudo ufw allow from your_other_server_ip/32 to any port 27017

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

sudo ufw status

Вы должны увидеть разрешенный трафик на порт27017 в выводе:

Выход

Status: active

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

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

Вы можете найти более сложные настройки брандмауэра для ограничения доступа к службам вUFW Essentials: Common Firewall Rules and Commands.

Несмотря на то, что порт открыт, MongoDB в настоящее время прослушивает только локальный адрес127.0.0.1. Чтобы разрешить удаленные подключения, добавьте публично маршрутизируемый IP-адрес вашего сервера в файлmongod.conf.

Откройте файл конфигурации MongoDB в вашем редакторе:

sudo nano /etc/mongodb.conf

Добавьте IP-адрес вашего сервера в значениеbindIP:

...
logappend=true

bind_ip = 127.0.0.1,your_server_ip
#port = 27017

...

Обязательно ставьте запятую между существующим IP-адресом и тем, который вы добавили.

Сохраните файл, выйдите из редактора и перезапустите MongoDB:

sudo systemctl restart mongodb

MongoDB теперь прослушивает удаленные соединения, но любой может получить к нему доступ. Следуйте Части 2How to Install and Secure MongoDB on Ubuntu 16.04, чтобы добавить пользователя с правами администратора и заблокировать вещи дальше.

Заключение

Вы можете найти более подробные руководства о том, как настроить и использовать MongoDB вthese DigitalOcean community articles. ОфициальныйMongoDB documentation также является отличным ресурсом о возможностях, которые предоставляет MongoDB.

Related