Назад | Перейти на главную страницу

mongoDB не будет подключаться удаленно

Я установил mongoDB на виртуальную машину redhat на EC2.

Сервер работает идеально локально, я могу подключаться и выполнять команды и т. Д. Теперь я попытался подключиться удаленно с другой виртуальной машины на EC2, но я не могу подключиться, независимо от того, сколько я пытаюсь. Сначала я подумал, что это проблема групп безопасности, поэтому я попытался включить все порты из группы (обе виртуальные машины принадлежат к одним и тем же группам безопасности). Я также включил соединения в файле iptables (и да, перезапустил службу), но это все еще не работает ... Есть идеи, в чем может быть проблема?

я получаю ошибку:

MongoDB shell version: 2.0.2
connecting to: ec2-XXXX.eu-west-1.compute.amazonaws.com/test
Thu Jan  5 13:55:32 Error: couldn't connect to server ec2-XXXX.eu-west-1.compute.amazonaws.com shell/mongo.js:86
exception: connect failed

Заранее спасибо.

Что касается настройки "bind_ip", ну ... для нее нет значения по умолчанию, я имею в виду, что по умолчанию даже нет строки bind_ip в mongodb.conf. Я, вероятно, ожидал чего-то вроде bind_ip = 127.0.0.1, чтобы я мог его прокомментировать, но этого не было, поэтому я попытался с bind_ip = 0.0.0.0, но все равно он тоже не работает.

РЕШЕНО! всем, кто использует установку Redhat по умолчанию для EC2, вам необходимо выполнить эту команду:

система-конфигурация-брандмауэр-туи

Надеюсь, это поможет. Вам нужно явно указать mongodb прослушивать устройства, отличные от localhost. По умолчанию он работает только на localhost.

Из http://www.mongodb.org/display/DOCS/Security+and+Authentication:

Привязка IP-адреса По умолчанию сервер mongod будет прослушивать все доступные IP-адреса на машине. Вы можете ограничить это одним IP-адресом с помощью параметра конфигурации bind_ip для mongod.

Как правило, это будет 127.0.0.1, интерфейс обратной связи, чтобы mongod слушал только запросы с той же машины (localhost).

Чтобы включить прослушивание на всех интерфейсах, удалите параметр bind_ip из файла конфигурации сервера.

Обновить: Думаю, я сам запутался. Я думал, что поведение по умолчанию отличается от описанного выше. (Может быть, раньше?) В любом случае вы должны проверить свой файл конфигурации mongo, чтобы убедиться, что он настроен так, как вы ожидаете.

С сервером mongoDB версии 3.6.4 и Ubuntu 16.4.4 я решил эту проблему, установив секцию net в /etc/mongod.conf следующим образом:

net:
  port: 27017
  bindIpAll: true
#  bindIp: 127.0.0.1

Рады видеть, что модификация межсетевого экрана решила проблемы. Не забывайте и другие рекомендации EC2 (сведения о файловой системе, обмен данными между регионами и другие) здесь:

http://www.mongodb.org/display/DOCS/Amazon+EC2

Также есть отличный технический документ о том, как масштабировать и развертывать на EC2:

http://d36cz9buwru1tt.cloudfront.net/AWS_NoSQL_MongoDB.pdf

Если вы используете aws, убедитесь, что группа безопасности разрешает порт 27017. Я потратил два часа своей жизни на выяснение этого.