Как установить MongoDB на Ubuntu 16.04
Введение
MongoDB — это бесплатная база данных документов NoSQL с открытым исходным кодом, которая обычно используется в современных веб-приложениях. Это руководство поможет вам настроить MongoDB на вашем сервере для рабочей среды приложений.
Предпосылки
Чтобы следовать этому руководству, вам понадобятся:
- Один сервер Ubuntu 16.04, настроенный в соответствии с этим руководством по начальной настройке сервера, включая пользователя без полномочий root и брандмауэр.
Шаг 1 — Добавление репозитория MongoDB
MongoDB уже включен в репозиторий пакетов Ubuntu, но официальный репозиторий MongoDB предоставляет самую последнюю версию и является рекомендуемым способом установки программного обеспечения. На этом этапе мы добавим этот официальный репозиторий на наш сервер.
Ubuntu гарантирует подлинность программных пакетов, проверяя, подписаны ли они ключами GPG, поэтому сначала нам нужно импортировать их ключ для официального репозитория MongoDB.
- wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
После успешного импорта ключа вы увидите:
OK
Далее нам нужно добавить сведения о репозитории MongoDB, чтобы apt
знал, откуда скачивать пакеты.
Введите следующую команду, чтобы создать файл списка для MongoDB.
- echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
После добавления сведений о репозитории нам нужно обновить список пакетов.
- sudo apt-get update
Шаг 2 — Установка и проверка MongoDB
Теперь мы можем установить сам пакет MongoDB.
- sudo apt-get install -y mongodb-org
Эта команда установит несколько пакетов, содержащих последнюю стабильную версию MongoDB, а также полезные инструменты управления сервером MongoDB.
Затем запустите MongoDB с помощью systemctl
.
- sudo systemctl start mongod
Вы также можете использовать systemctl
, чтобы проверить правильность запуска службы.
- sudo systemctl status mongod
● mongodb.service - High-performance, schema-free document-oriented database
Loaded: loaded (/etc/systemd/system/mongodb.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2016-04-25 14:57:20 EDT; 1min 30s ago
Main PID: 4093 (mongod)
Tasks: 16 (limit: 512)
Memory: 47.1M
CPU: 1.224s
CGroup: /system.slice/mongodb.service
└─4093 /usr/bin/mongod --quiet --config /etc/mongod.conf
Последний шаг — включить автоматический запуск MongoDB при старте системы.
- sudo systemctl enable mongod
Теперь сервер MongoDB настроен и запущен, и вы можете управлять службой MongoDB с помощью команды systemctl
(например, sudo systemctl stop mongod
, sudo systemctl start mongod
).
Шаг 3 — Настройка брандмауэра (необязательно)
Предполагая, что вы следовали инструкциям руководства по начальной настройке сервера, чтобы включить брандмауэр на вашем сервере, сервер MongoDB будет недоступен из Интернета.
Если вы собираетесь использовать сервер MongoDB только локально с приложениями, работающими на том же сервере, это рекомендуемая и безопасная настройка. Однако, если вы хотите иметь возможность подключаться к вашему серверу MongoDB из Интернета, мы должны разрешить входящие подключения в ufw
.
Чтобы разрешить доступ к MongoDB через порт по умолчанию 27017
из любой точки мира, вы можете использовать sudo ufw allow 27017
. Однако включение доступа через Интернет к серверу MongoDB при установке по умолчанию дает неограниченный доступ ко всему серверу базы данных.
в большинстве случаев к MongoDB следует обращаться только из определенных надежных мест, например, с другого сервера, на котором размещено приложение. Для выполнения этой задачи вы можете разрешить доступ к порту MongoDB по умолчанию, указав при этом IP-адрес другого сервера, которому будет явно разрешено подключение.
- sudo ufw allow from your_other_server_ip/32 to any port 27017
Вы можете проверить изменение настроек брандмауэра с помощью ufw
.
- sudo ufw status
В выходных данных вы должны увидеть разрешенный трафик на порт 27017
. Если вы решили разрешить подключение к серверу MongoDB только определенному IP-адресу, вместо В любом месте в выходных данных.
Status: active
To Action From
-- ------ ----
27017 ALLOW Anywhere
OpenSSH ALLOW Anywhere
27017 (v6) ALLOW Anywhere (v6)
OpenSSH (v6) ALLOW Anywhere (v6)
Дополнительные параметры брандмауэра для ограничения доступа к службам описаны в UFW Essentials: общие правила и команды брандмауэра.
Заключение
Вы можете найти более подробные инструкции по установке и настройке MongoDB в этих статьях сообщества DigitalOcean.