Реклама ООО Таймвэб
Реклама ООО Таймвэб
Реклама ООО Таймвэб

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

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

MongoDB – это бесплатная СУБД с открытым исходным кодом. Это документоориентированная СУБД, реализованная при помощи подхода NoSQL. На июль 2018 года MongoDB входит в пятерку самых популярных СУБД (при этом остальные четыре СУБД реляционные).

Преимущества использования MongoDB это высокая скорость разработки, масштабируемость, использование гибкого языка для формирования запросов, эффективное хранение двоичных данных больших объемов.

Требования

Для того чтобы выполнить инструкции из этой статьи, у вас должен быть сервер с установленной на нем ОС Ubuntu 18.04, пользователем, который может выполнять команды sudo, и файрволом.

VDS Timeweb арендовать

Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться

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

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

Сначала нужно обновить список пакетов:

$ sudo apt update

А затем установить MongoDB:

$ sudo apt install -y mongodb

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

Теперь надо проверить, что сервер запущен и работает корректно.

Шаг 2: Проверка работы базы данных

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

$ sudo systemctl status mongodb

Вывод на экране будет примерно вот таким:

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

То есть утилита systemctl (она используется для управления службами в Linux) показывает, что сервер MongoDB запущен и работает.

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

Введите команду:

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

В выводе вы увидите версию текущей базы данных, адрес сервера и порт.

MongoDB shell version v3.6.3

connecting to: mongodb://127.0.0.1:27017

MongoDB server version: 3.6.3

{

     "authInfo" : {

             "authenticatedUsers" : [ ],

             "authenticatedUserRoles" : [ ]

     },

     "ok" : 1

}

Единица в поле ОК говорит о том, что сервер работает корректно.

Теперь необходимо разобраться в том, как управлять сервером.

Шаг 3: Управление MongoDB

MongoDB устанавливается в качестве службы systemd, а значит, управлять СУБД можно при помощи стандартных команд system – точно так же, как и другими службами 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

Теперь можно перейти к настройке фаервола.

Шаг 4: Настройка файрвола

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

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

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

$ sudo ufw allow 27017

Но в этом случае доступ к базе данных получат абсолютно все пользователи, что небезопасно.

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

$ sudo ufw allow from ip-адрес-сервера/32 to any port 27017

Проверить изменения в настройках файрвола можно командой:

$ 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 слушает только локальный адрес 127.0.0.1. Для того чтобы разрешить удаленные подключения, вам нужно добавить в файл  mongod.conf публичный IP-адрес вашего сервера.

Откройте конфигурационный файл MongoDB:

$ sudo nano /etc/mongodb.conf

Добавьте IP-адрес сервера в строку bindIP:

...

logappend=true

bind_ip = 127.0.0.1, ip-адрес вашего сервера

#port = 27017

...

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

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

$ sudo systemctl restart mongodb

Теперь удаленные подключения к MongoDB разрешены.

Hello World! Гайды и обзоры для девелоперов разных мастей.

Комментарии

С помощью соцсетей
У меня нет аккаунта Зарегистрироваться
С помощью соцсетей
У меня уже есть аккаунт Войти
Инструкции по восстановлению пароля высланы на Ваш адрес электронной почты.
Пожалуйста, укажите email вашего аккаунта
Ваш баланс 10 ТК
1 ТК = 1 ₽
О том, как заработать и потратить Таймкарму, читайте в этой статье
Чтобы потратить Таймкарму, зарегистрируйтесь на нашем сайте