- Установка и подключение к MongoDB
- Установка
- Доступ по сети
- Аутентификация
- Примеры подключения из языков программирования
- Установка MongoDB в Ubuntu 18.04
- Введение
- Предварительные требования
- Шаг 1 — Установка MongoDB
- Шаг 2 — Проверка службы и базы данных
- Шаг 3 — Управление службой MongoDB
- Шаг 4 — Настройка брандмауэра (необязательно)
- Заключение
- Установка MongoDB в Ubuntu
- Установка MongoDB
- 1. Установка из репозитория дистрибутива
- 1. Установка из репозитория разработчиков
- Настройка MongoDB
- Удаление MongoDB
Установка и подключение к MongoDB
В данной инструкции мы рассмотрим процесс установки MongoDB на Linux Ubuntu (Debian). Также будут приведены примеры настройки подключения по сети, защита соединения с помощью шифрования и аутентификации.
Установка
На странице MongoDB Community Downloads смотрим стабильные версии программного продукта. На момент обновления инструкции это была 4.4.
Обратите внимание, установка MongoDB возможна на большое число популярных операционных систем — Amazon, Debian, Ubuntu, macOS, CentOS, Red Hat, Windows и другие.
Переходим на страницу загрузки ключей для проверки подлинности репозитория. Копируем ссылку для версии MongoDB, которую мы планируем установить:
* в данном примере мы скопировали ссылку на ключ для версии 4.4. Обратите внимание, что также есть возможность загрузки ключей для более свежих и менее стабильных версий.
С помощью скопированной ссылки скачиваем и устанавливаем ключ:
wget -qO — https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add —
Создаем файл для настройки репозитория Ubuntu:
deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse
* focal — название релиза Ubuntu. В данном примере, версия 20.04. На данный момент возможны варианты:
- focal: 20.04.
- bionic: 18.04.
- xenial: 16.04.
Обновляем список пакетов:
apt-get install mongodb-org
Стартуем сервис и разрешаем его автозапуск:
systemctl start mongod
systemctl enable mongod
Для подключения к СУБД вводим команду:
Можно для проверки ввести команду, которая покажет созданные базы данных:
После первой установки мы должны увидеть следующее:
admin 0.000GB
config 0.000GB
local 0.000GB
В качестве примера работы мы можем попробовать создать новую базу данных и коллекцию. Объекты в MongoDB создаются автоматически при первом к ним обращении.
Для создания базы просто обращается к ней:
* в данном примере будут создана база newDB.
Для создания коллекции, выполняем команду на вставку данных:
Выходим из оболочки SQL:
Доступ по сети
По умолчанию к установленной базе можно подключиться только с локального компьютера. Рассмотрим процесс настройки сетевого доступа.
Для начала, откроем порт в брандмауэре:
iptables -I INPUT -p tcp —dport 27017 -j ACCEPT
* по умолчанию, MongoDB работает на TCP-порту 27017.
В системах на базе Ubuntu и Debian брандмауэр работает по принципу разрешения. Если мы не меняли данной настройки, то нам не обязательно создавать разрешающее правило для Mongo.
Открываем конфигурационный файл СУБД:
Находим директиву net и в ней опцию bindIp — добавляем IP-адрес, на котором наш сервер должен принимать запросы для MongoDB:
net:
port: 27017
bindIp: 127.0.0.1, 192.168.1.15
* в нашем примере мы добавили к 127.0.0.1 адрес 192.168.1.15 — это сетевой адрес нашего сервера, на котором он должен принимать запросы.
Перезапускаем сервис mongod:
systemctl restart mongod
Чтобы проверить подключение, на другом компьютере должен быть установлен клиент для подключения к Mongo. Процесс его установки схож с установкой сервера. Рассмотрим пример для Ubuntu.
Устанавливаем ключ для репозитория:
wget -qO — https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add —
deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse
* как в случае с сервером, focal — название релиза Ubuntu. В данном примере, версия 20.04. Другие варианты: bionic: 18.04, xenial: 16.04.
Обновляем список пакетов:
Устанавливаем клиентскую часть:
apt-get install mongodb-org-shell
Теперь можно подключиться к нашему серверу:
* в данном примере мы подключаемся к серверу MongoDB 192.168.1.15.
Также мы можем использовать MongoDB Compass — это приложение под Windows, Linux и macOS для работы с базой Mongo в графическом интерфейсе. Скачать его можно на странице официального сайта.
Аутентификация
По умолчанию, мы можем подключиться к СУБД без авторизации. Если нам необходимо повысить безопасность работы с базой, можно требовать ввода логина и пароля.
Заходим в командную оболочку Mongo:
Подключаемся к базе admin:
Создаем пользователя, под которым будем авторизовываться:
* в данном примере мы создадим пользователя с правами доступа на все базы. Логин root, пароль будет запрошен после ввода.
Придумываем и вводим пароль
После создания пользователя мы должны увидеть, примерно, следующую картину:
Successfully added user: <
«user» : «root»,
«roles» : [
<
«role» : «userAdminAnyDatabase»,
«db» : «admin»
>,
«readWriteAnyDatabase»
]
>
Выходим из командной оболочки:
Открываем конфигурационный файл:
Находим директиву security и задаем параметр authorization:
security:
authorization: enabled
Перезапускаем сервис mongod:
systemctl restart mongod
Теперь пробуем подключиться к mongo. Мы можем авторизоваться несколькими способами.
а) Авторизация при подключении:
mongo —authenticationDatabase «admin» -u «root» -p
* в данном примере мы подключимся к базе под пользователем root. Пароль будет запрошен системой после ввода команды.
б) Авторизация после подключения:
Теперь усилим безопасность, зашифровав передачу данных. Для этого нам понадобиться сертификат. В нашем примере, мы будем использовать самоподписанный сертификат, но в продуктивной среде, лучше его купить или запросить у Let’s Encrypt.
Создаем каталог, в котором разместим наши сертификаты:
mkdir -p /etc/ssl/mongodb
Сгенерируем самоподписанный сертификат:
openssl req -new -x509 -days 1461 -nodes -out /etc/ssl/mongodb/cert.pem -keyout /etc/ssl/mongodb/cert.pem -subj «/C=RU/ST=SPb/L=SPb/O=Global Security/OU=IT Department/CN=mongo.dmosk.local/CN=mongo»
Выставим в качестве владельца на файлы сертификата пользователя mongodb:
chown mongodb:mongodb /etc/ssl/mongodb/cert.pem
Открываем конфигурационный файл СУБД:
В директиву net дописываем опции TLS:
net:
.
tls:
mode: requireTLS
certificateKeyFile: /etc/ssl/mongodb/cert.pem
* в данном примере мы указали необходимость шифрования данных при передаче, а также путь до сгенерированного нами сертификата.
Перезапускаем сервис mongod:
systemctl restart mongod
Для подключения к базе с использованием шифрования используем команду:
mongo —tls —tlsAllowInvalidCertificates
* в данном примере мы указываем при подключении использовать шифрование с использованием TLS. Опция tlsAllowInvalidCertificates говорит, что клиент должен принять неправильный сертификат (так как у нас он самоподписанный).
Так как у нас еще настроена аутентификация, для подключения введем такую команду:
mongo —tls —tlsAllowInvalidCertificates —authenticationDatabase «admin» -u «root» -p
Для подключения к нашему серверу по сети, полная команда будет такой:
mongo «mongodb://192.168.1.15:27017» —tls —tlsAllowInvalidCertificates —authenticationDatabase «admin» -u «root» -p
Примеры подключения из языков программирования
Рассмотрим небольшие примеры для подключения к MongoDB из языков программирования PHP и Python.
Для возможности работы PHP с Mongo необходимо установить соответствующее расширение. Выполняем пошагово следующие действия:
apt-get install php-pear php-dev
pecl channel-update pecl.php.net
pecl install mongodb
Для каждого возможного варианта использования PHP необходимо создать отдельный конфигурационной файл. В данном примере, под php 7.4 для cli, php-fpm, apache.
Источник
Установка MongoDB в Ubuntu 18.04
Published on January 7, 2020
Автор выбрал Creative Commons Corporation для получения пожертвования $100 в рамках программы Write for DOnations.
Введение
MongoDB — бесплатная база данных документов NoSQL с открытым исходным кодом, часто используемая в современных веб-приложениях.
В этом обучающем модуле вы научитесь устанавливать MongoDB, управлять ее службами и включать дистанционный доступ, если это потребуется.
Предварительные требования
Для данного обучающего модуля вам потребуется следующее:
- Один сервер Ubuntu 18.04, настроенный в соответствии с обучающим модулем Начальная настройка сервера Ubuntu 18.04, включая пользователя sudo без привилегий root и брандмауэр.
Шаг 1 — Установка MongoDB
Официальные хранилища пакетов Ubuntu включают актуальную версию MongoDB, и это означает, что мы можем установить необходимые пакеты с помощью apt .
Вначале необходимо обновить список пакетов, чтобы получить последнюю версию списка хранилища:
Затем мы установим сам пакет MongoDB:
Эта команда устанавливает несколько пакетов, содержащих последнюю стабильную версию MongoDB, а также полезные инструменты управления для сервера MongoDB. Сервер базы данных автоматически запускается после установки.
Затем нужно убедиться, что сервер запущен и работает корректно.
Шаг 2 — Проверка службы и базы данных
Запуск MongoDB был автоматически выполнен в процессе установки, но теперь нужно убедиться, что служба запущена и база данных работает.
Вначала проверим состояние службы:
Вы увидите следующий результат:
Согласно systemd , сервер MongoDB запущен и работает.
Мы можем дополнительно подтвердить это, выполнив фактическое подключение к серверу базы данных и запустив диагностическую команду
Запустите следующую команду:
Команда выведет текущую версию базы данных, адрес и порт сервера, а также результаты выполнения команды status:
Значение 1 поля ok в ответе означает, что сервер работает нормально.
Теперь мы рассмотрим, как управлять экземпляром сервера.
Шаг 3 — Управление службой MongoDB
MongoDB устанавливается как служба systemd, т. е. вы можете управлять ей с помощью стандартных команд systemd наряду со всеми другими системными службами в Ubuntu.
Чтобы проверить состояние службы, введите:
Вы можете остановить сервер в любое время, введя следующую команду:
Чтобы запустить остановленный сервер, введите:
Также вы можете перезапустить сервер с помощью одной команды:
По умолчанию MongoDB настроена для автоматического запуска вместе с сервером. Если вы хотите отключить автоматический запуск, введите:
Точно так же легко снова включить его. Для этого нужно использовать следующую команду:
Теперь изменим настройки параметров брандмауэра для нашей системы MongoDB.
Шаг 4 — Настройка брандмауэра (необязательно)
Если вы следовали указаниям обучающего модуля по начальной настройке сервера и включили на сервере брандмауэр, сервер MongoDB будет недоступен из интернета.
Если вы намереваетесь использовать сервер MongoDB только локально с запуском приложений на том же сервере, эту безопасную настройку рекомендуется сохранить. Однако если вы хотите иметь возможность подключения к серверу MongoDB из интернета, необходимо разрешить входящие подключения в ufw .
Чтобы разрешить доступ к MongoDB через порт по умолчанию 27017 из любой точки, можно использовать команду sudo ufw allow 27017 . Однако включение доступа к серверу MongoDB через интернет с параметрами по умолчанию даст кому угодно доступ к серверу базы данных и его содержимому.
В большинстве случаев доступ к MongoDB следует разрешать только из определенных доверенных мест, таких как другой сервер хостинга приложения. Для этого нужно разрешить доступ к порту MongoDB по умолчанию, но указать IP-адрес другого сервера, которому будет дано явное разрешение на подключение:
Вы можете проверить изменение параметров брандмауэра с помощью ufw :
В результатах вывода должно быть видно, что трафик на порт 27017 разрешен:
Если вы решили разрешить подключение к серверу MongoDB только для одного IP-адреса, этот адрес должен быть указан в выводимом списке вместо «Anywhere».
Хотя порт открыт, MongoDB прослушивает только локальный адрес 127.0.0.1 . Чтобы разрешить удаленные подключения, добавьте публичный маршрутизируемый IP-адрес вашего сервера в файл mongod.conf .
Откройте файл конфигурации MongoDB в редакторе:
Добавьте IP-адрес вашего сервера в значение bindIP :
Обязательно поставьте запятую между уже записанным IP-адресом и добавленным.
Сохраните файл, закройте редактор и перезапустите MongoDB:
Теперь MongoDB прослушивает удаленные соединения, но доступ к нему открыт для всех. Следуйте указаниям части 2 руководства «Установка и защита MongoDB в Ubuntu 16.04», чтобы добавить административного пользователя и дополнительные ограничения.
Заключение
Более подробные обучающие модули по настройке и использованию MongoDB можно найти в следующих статьях сообщества DigitalOcean. Официальная документация по MongoDB также содержит много информации о возможностях, предоставляемых MongoDB.
Источник
Установка MongoDB в Ubuntu
MongoDB — популярная реализация нереляционной базы данных. Если в двух словах, то базы данных бывают нескольких типов. Базы реляционного типа — самые популярные, хранят данные в записях таблицы, которая состоит из столбцов и строк. MongoDB принадлежит к объектно-ориентированному типу. Главное отличие этого типа в том, что работа и хранение данных осуществляется с помощью объектов, точно так же, как это делается в популярных объективно-ориентированных языках программирования (C++, Java).
Реляционные базы данных обычно используются для данных, которым важна сохранность и максимальная надёжность. Объектно-ориентированные базы данных более быстрые, но менее надёжные и часто используются для хранения различных событий и статистических данных. В этой инструкции я расскажу, как выполняется установка MongoDB Ubuntu 20.04.
Установка MongoDB
1. Установка из репозитория дистрибутива
В современных дистрибутивах утилита добавлена в официальный репозиторий современных версий Ubuntu. Для её установки достаточно выполнить:
sudo apt install mongodb-server
Затем можно посмотреть состояние службы:
sudo systemctl status mongod
И добавить её в автозагрузку, если это необходимо:
sudo systemctl enable mongod
Работать с базой данных можно через клиент командной строки Mongo. Например, давайте посмотрим версию базы данных:
Если вы собираетесь удалить MongoDB, то обратите внимание, что эта база данных может уже использоваться каким-либо приложением, поэтому сначала убедитесь, что, удалив её, вы ничего не сломаете.
1. Установка из репозитория разработчиков
Если вы хотите получить самую свежую версию программы, то необходимо устанавливать её из репозитория разработчиков MongoDB. Прежде чем устанавливать эту версию, надо удалить версию из официальных репозиториев, если она была установлена:
sudo apt purge mongodb*
Далее нужно интегрировать публичный ключ, чтобы система приняла пакет, для этого наберите в терминале:
wget -qO — https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add —
С помощью следующей команды создаём список файлов пакета:
echo «deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse» | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
Обновим базу данных локальных пакетов:
sudo apt update
И можно переходить к установке:
sudo apt install -y mongodb-org
Далее надо запустить сервис mongod и добавить его в автозагрузку:
sudo systemctl start mongod
sudo systemctl enable mongod
sudo systemctl status mongod
Далее смотрим версию:
Если что-то не работает, логи сервиса можно посмотреть в папке /var/log/mongodb, файлы баз данных — /var/lib/mongodb.
Настройка MongoDB
По умолчанию база данных не защищена паролем и подключится к ней может кто угодно. Чтобы этого избежать, надо защитить базу данных. Для этого нужно создать базу данных и пользователя для неё, который сможет управлять всеми базами данных. Войдите в интерфейс управления Mongo:
Переключитесь в базу данных admin и создайте нового пользователя:
Здесь мы задаём имя пользователя Admin и разрешаем ему доступ ко всем базам данных. После нажатия Enter программа запросит пароль для нового пользователя. Введите пароль и всё будет готово.
Далее откройте конфигурационный файл /etc/mongod.conf и добавьте туда такие строчки:
sudo vi /etc/mongod.conf
security:
authorization: enabled
Затем перезапустите MongoDB:
sudo systemctl restart mongod
После этого вы все ещё сможете подключится к MongoDB с помощью клиента Mongo, но чтобы выполнить какие-либо действия, вам понадобится авторизация. Например, вы не сможете посмотреть список баз данных, создать пользователя или получить данные из базы. Например, команда show databases вернёт пустой результат:
Для подключения с авторизацией используйте команду:
$ mongo —authenticationDatabase имя_базы_данных -u имя_пользователя -p
mongo —authenticationDatabase «admin» -u «Admin» -p
Удаление MongoDB
Чтобы удалить MongoDB с компьютера, наберите:
sudo apt purge mongodb-org*
Или если вы устанавливали программу из официальных репозиториев, используйте:
sudo apt purge mongodb*
Теперь вы знаете, как установить MongoDB Ubuntu 18.04 на ваш компьютер, а также как проверить, какая версия у вас установлена, и работает ли вообще эта база данных.
Источник