Как установить MongoDB на Debian 9

Вступление

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

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

Предпосылки

Чтобы следовать этому руководству, вам понадобится один сервер Debian 9, настроенный по следующему руководству по установке initial, включая пользователь без полномочий root и брандмауэр.

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

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

Во-первых, нам нужно добавить ключ подписи MongoDB с помощью + apt-key add +. Перед тем как сделать это, нам нужно убедиться, что команда + curl + установлена:

sudo apt install curl

Затем мы скачиваем ключ и передаем его в + apt-key add +:

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

Далее мы создадим список источников для репозитория MongoDB, поэтому + apt + знает, откуда его загрузить. Сначала откройте файл списка источников в текстовом редакторе:

sudo nano /etc/apt/sources.list.d/mongodb-org-4.0.list

Это откроет новый пустой файл. Вставьте в следующее:

/etc/apt/sources.list.d/mongodb-org-4.0.list

deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main

Сохраните и закройте файл, затем обновите кеш вашего пакета:

sudo apt update

Установите пакет + mongodb-org + для установки сервера и некоторых вспомогательных инструментов:

sudo apt-get install mongodb-org

Наконец, включите и запустите службу + mongod +, чтобы запустить вашу базу данных MongoDB:

sudo systemctl enable mongod
sudo systemctl start mongod

Сейчас мы установили и запустили последнюю стабильную версию MongoDB вместе с полезными инструментами управления для сервера MongoDB.

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

Шаг 2 - Проверка сервиса и базы данных

Мы запустили сервис MongoDB на предыдущем шаге, теперь давайте проверим, что он запущен и база данных работает.

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

sudo systemctl status mongod

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

Output●  - MongoDB Database Server
  Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
  Active:  since Wed 2018-09-05 16:59:56 UTC; 3s ago
    Docs: https://docs.mongodb.org/manual
Main PID: 4321 (mongod)
   Tasks: 26
  CGroup: /system.slice/mongod.service
          └─4321 /usr/bin/mongod --config /etc/mongod.conf

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

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

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

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

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

OutputMongoDB shell version v4.0.2
connecting to:
MongoDB server version: 4.0.2
{
   "authInfo" : {
       "authenticatedUsers" : [ ],
       "authenticatedUserRoles" : [ ]
   },

}

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

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

Шаг 3 - Управление сервисом MongoDB

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

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

sudo systemctl status mongod

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

sudo systemctl stop mongod

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

sudo systemctl start mongod

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

sudo systemctl restart mongod

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

sudo systemctl disable mongod

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

sudo systemctl enable mongod

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

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

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

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

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

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

sudo ufw allow from /32 to any port

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

sudo ufw status

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

Выход

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere

OpenSSH (v6)               ALLOW       Anywhere (v6)

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

Более подробные настройки брандмауэра для ограничения доступа к службам можно найти по адресу UFW Essentials: Общие правила и команды брандмауэра ,

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

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

sudo nano /etc/mongod.conf

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

/etc/mongod.conf

. . .
# network interfaces
net:
 port: 27017
 bindIp: 127.0.0.1
. . .

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

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

sudo systemctl restart mongod

MongoDB теперь прослушивает удаленные соединения, но любой может получить к нему доступ. Следуйте части 2 Wow для установки и Защитите MongoDB в Ubuntu 16.04, чтобы добавить администратора и заблокировать его.

Заключение

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

Related