Как подключиться к экземпляру MongoDB EC2
у нас есть экземпляр EC2 MongoDB 2.4 от Amazon MarketPlace.
когда я пытаюсь получить к нему доступ с моего компьютера, используя команду mongo, например:
mongo xx-xx-xx-xx-xx.compute-1.amazonaws.com
я получаю следующую ошибку
Error: couldn't connect to server xx-xx-xx-xx-xx.compute-1.amazonaws.com:27017 at src/mongo/shell/mongo.js:147
exception: connect failed
- Я могу подключиться к удаленному экземпляру с помощью ssh, чтобы он был доступен.
- порт является портом 27017 по умолчанию.
- mongod работает и работает на удаленном экземпляре.
какие-либо предложения по устранению этого?
Ответы
Ответ 1
Как сказал frisky, вы должны открыть порт 27017 на консоли безопасности EC2.
(Чтобы узнать больше о том, как это сделать: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/authorizing-access-to-an-instance.html)
Но вам также нужно изменить переменную bind_ip
в файле /etc/mongodb.conf. Вам нужно прокомментировать строку или назначить ip, который сможет подключить к ней БД.
Ответ 2
Так как mongod работает и работает на удаленном экземпляре, вы можете получить доступ к своему содержимому MongoDB через
mongo xx-xx-xx-xx-xx.compute-1.amazonaws.com или
mongo machine_elastic_IP
До этого вам нужно открыть входящий порт для этого компьютера. По умолчанию порт 27017 закрыт для внешнего мира.
Подробнее см. http://docs.aws.amazon.com/gettingstarted/latest/wah/getting-started-security-group.html
Ответ 3
Amazon создал группу безопасности mongo без открытия 27017.
открытие порта 27017 на мой компьютер исправил проблему.
Ответ 4
Попробуйте получить доступ к xx-xx-xx-xx-xx.compute-1.amazonaws.com:27017 из браузера, если он работает тогда ssh в экземпляр.
- Остановить сервер mongodb
- Удалить файл
/var/lib/mongodb/mongod.lock
снова запустите сервер mongodb и проверьте, не набрал ли текст mongo
оболочку mongo или дал какую-либо ошибку.
Если ошибка присутствует, выйдите из экземпляра и снова ssh, чтобы проверить $mongo
, если он открывает оболочку mongo. Попробуйте перезагрузиться после того, как это изменится, если ошибка все еще существует после того, как это изменилось.
Единственная проблема здесь, прежде чем обращаться к ней из любого приложения. Mongodb должен работать независимо в терминале.
Ответ 5
EC2 контролирует доступ с использованием группы безопасности, поэтому убедитесь, что окно доступа к хосту mongo db находится в security group
, которому разрешен доступ к этому полю, и port
включен для той же группы безопасности.
Другой проблемой может быть iptables
. Проверьте sudo service iptables status
в поле mongodb и посмотрите, какие там правила.
Убедитесь, что вы включили соответствующие порты в соответствии с требованием security
в поле.