Описание и технические требования

На сегодняшний день, MongoDB входит в ТОП-5 наиболее востребованных СУБД с открытым исходным кодом. Отличается высокой скоростью работы, разветвленным языком запросов и возможностью масштабирования.

Для выполнения действий по установке MongoDB на Ubuntu, должны быть соблюдены следующие требования.

  1. Доступ к серверу для установки операционной системы.
  2. Наличие ОС Ubuntu 18.04 на сервере.
  3. Файрвол.
  4. Наличие прав использовать команду sudo.

Инсталляция базы данных актуальной версии

Установка MongoDB на Ubuntu 18.04 начинается с обращения к официальным репозиториям Ubuntu с актуальными версиями СУБД. Выполняется это посредством утилиты apt и двух команд.

  1. Команда для обновления списка пакетов:
 sudo apt update
  1. Команда для установки MongoDB на сервер:
 sudo apt install -y mongodb

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

Контроль корректности работы сервера базы данных

На первом шаге проверяется статус службы. Данное действие выполняется введением в терминал следующей команды:

 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 Thu 2020-01-30 08: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 использует для управления своими службами.

Вторым шагом выполняется подключение к серверу базы данных и контроль его работы. После ввода команды следующего вида:

 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

}

Поле «ok» с единицей сообщает о корректной работе сервера.

Управление службой mongoDB

Установленная база данных является службой – systemd. По этой причине управление СУБД выполняется при помощи команд system стандартного вида. Это относится и к другим службам, работающим в Ubuntu. Список основных команд, при помощи которых осуществляется управление базой данных, следующий:

  1. Команда, предназначенная для проверки статуса службы:
 sudo systemctl status mongodb
  1. Остановка запущенного сервера:
 sudo systemctl stop mongodb
  1. Запуск остановленного сервера:
 sudo systemctl start mongodb
  1. Команда, предназначенная для перезапуска службы:
 sudo systemctl restart mongodb
  1. Отключение автозагрузки базы данных при запуске сервера:
 sudo systemctl disable mongodb
  1. Возвращение базы данных в список автозагрузки при запуске сервера:
 sudo systemctl enable mongodb

Настройка файрвола базы данных

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

Для открытия доступа к базе данных через интернет необходимо разрешить внешние подключения при помощи ufw. Первоначально включаем ufw следующей командой:

sudo ufw enable

Как правило, для внешнего подключения используется стандартный порт – 27017. Для его открытия в консоль вводится следующая команда:

sudo ufw allow 27017

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

В качестве примера – это может быть другой сервер. Подключение выполняется через стандартный порт базы данных, но с конкретным указанием 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)

При этом, сервер базы «слушает» исключительно локальное подключение по адресу 127.0.0.1. Для завершения настроек внешних подключений, необходимо внести в файл конфигурации mongod.conf небольшое изменение в виде публичного IP-адреса сервера СУБД. Порядок действия следующий:

  1. Открывается файл конфигурации базы данных используя команду:
 sudo nano /etc/mongodb.conf
  1. В строку Bind IP добавляется необходимый IP-адрес сервера:

logappend=true
bind_ip = 127.0.0.1, 194.61.0.6 *
#port = 27017

* IP-адрес приведен в качестве примера, на его место нужно подставить актуальный.

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

  1. Файл конфигурации сохраняется и закрывается.
  2. Сервер базы данных перезапускается командой:
 sudo systemctl restart mongodb

Удаление службы mongoDB

Удалить MongoDB на Ubuntu, в случае необходимости также просто как установить СУБД. Алгоритм полного удаления следующий:

  1. Остановка запущенного сервера базы данных. Команда для терминала:
sudo service mongodb stop

Остановка сервера необходима для избегания блокировок на удаляемые файлы базы данных.

  1. Удаление пакетов базы данных при помощи APT. Команда для терминала:
sudo apt-get remove purgemongodb-org*
  1. Удаление журналов базы данных по умолчанию находящихся в каталоге – /var/log/mongodb/. Команда для терминала:
sudo rm -r /var/log/mongodb
  1. Удаление базы данных по умолчанию находящейся в каталоге – /var/lib/mongodb/. Команда для терминала:
sudo rm -r /var/lib/mongodb

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