Описание и технические требования
На сегодняшний день, MongoDB входит в ТОП-5 наиболее востребованных СУБД с открытым исходным кодом. Отличается высокой скоростью работы, разветвленным языком запросов и возможностью масштабирования.
Для выполнения действий по установке MongoDB на Ubuntu, должны быть соблюдены следующие требования.
- Доступ к серверу для установки операционной системы.
- Наличие ОС Ubuntu 18.04 на сервере.
- Файрвол.
- Наличие прав использовать команду sudo.
Инсталляция базы данных актуальной версии
Установка MongoDB на Ubuntu 18.04 начинается с обращения к официальным репозиториям Ubuntu с актуальными версиями СУБД. Выполняется это посредством утилиты apt и двух команд.
- Команда для обновления списка пакетов:
sudo apt update
- Команда для установки 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. Список основных команд, при помощи которых осуществляется управление базой данных, следующий:
- Команда, предназначенная для проверки статуса службы:
sudo systemctl status mongodb
- Остановка запущенного сервера:
sudo systemctl stop mongodb
- Запуск остановленного сервера:
sudo systemctl start mongodb
- Команда, предназначенная для перезапуска службы:
sudo systemctl restart mongodb
- Отключение автозагрузки базы данных при запуске сервера:
sudo systemctl disable mongodb
- Возвращение базы данных в список автозагрузки при запуске сервера:
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-адреса сервера СУБД. Порядок действия следующий:
- Открывается файл конфигурации базы данных используя команду:
sudo nano /etc/mongodb.conf
- В строку Bind IP добавляется необходимый IP-адрес сервера:
logappend=true
bind_ip = 127.0.0.1, 194.61.0.6 *
#port = 27017
* IP-адрес приведен в качестве примера, на его место нужно подставить актуальный.
Между адресом локального сервера и вновь добавленным в обязательном порядке должна стоять запятая.
- Файл конфигурации сохраняется и закрывается.
- Сервер базы данных перезапускается командой:
sudo systemctl restart mongodb
Удаление службы mongoDB
Удалить MongoDB на Ubuntu, в случае необходимости также просто как установить СУБД. Алгоритм полного удаления следующий:
- Остановка запущенного сервера базы данных. Команда для терминала:
sudo service mongodb stop
Остановка сервера необходима для избегания блокировок на удаляемые файлы базы данных.
- Удаление пакетов базы данных при помощи APT. Команда для терминала:
sudo apt-get remove purgemongodb-org*
- Удаление журналов базы данных по умолчанию находящихся в каталоге – /var/log/mongodb/. Команда для терминала:
sudo rm -r /var/log/mongodb
- Удаление базы данных по умолчанию находящейся в каталоге – /var/lib/mongodb/. Команда для терминала:
sudo rm -r /var/lib/mongodb
При наличии дополнительных каталогов, созданных для базы данных, они удаляются ручным способом через файловый менеджер панели управления сервером.