Не удается подключиться к mongo db (cf ssh) — MongoNetworkError

Я хочу связать свое локальное приложение NodeJS с экземпляром службы Swisscom Cloud Foundry MongoDB. Как я вижу в служебном ключе, для mongo db есть три порта. Итак, я связываю порты с портами cf ssh.

cf ssh -L 63307:kubernetes-service-node.service.consul:37268 {my binded app}
cf ssh -L 63308:kubernetes-service-node.service.consul:39279 {my binded app}
cf ssh -L 63309:kubernetes-service-node.service.consul:45817 {my binded app}

После успешного запуска cf ssh я не могу подключиться к своей MongoDB и получаю сетевую ошибку (MongoNetworkError: failed to connect to server [kubernetes-service-node.service.consul:63308]) в NodeJS (mongoose connect with the dtabase_uri). Такое же поведение с клиентом MongoDB Compass.

Что я делаю неправильно?


person Miro    schedule 21.09.2018    source источник
comment
можете ли вы отредактировать свой вопрос с помощью команды mongo -vvv, которую вы используете для подключения, и точной команды?   -  person Josefine    schedule 21.09.2018


Ответы (1)


Вы добавили в свою систему запись hosts для преобразования kubernetes-service-node.service.consul в 127.0.0.1?

Также, я думаю, вам не нужно открывать три соединения SSH, т.е. я думаю, что вы можете указать несколько перенаправлений портов в одном соединении, например, так: cf ssh -L ... -L ... -L ... <app>

person Sandro Mathys    schedule 21.09.2018
comment
Должен ли я добавлять запись хоста в файл hosts (на моем Mac) или нельзя просто изменить строку подключения на localhost следующим образом: "mongodb://[email protected]:63310,127.0.0.1:63311,127.0.0.1:63312/abc?replicaSet=efg" после привязки с cf ssh -L 63310:kubernetes-service-node.service.consul:37268 -L 63311:kubernetes-service-node.service.consul:39279 -L 63312:kubernetes-service-node.service.consul:45817 {appname} ? - person Miro; 21.09.2018
comment
Вы должны добавить его, так как серверы mongod, к которым вы подключаетесь, сообщат вашему клиенту/драйверу правильные адреса, а затем он попытается подключиться к тем, а не к тем, которые вы указали. - person Sandro Mathys; 22.09.2018
comment
После добавления хоста в файл hosts и удаления параметра replicationSet из строки подключения подключение работает нормально! Спасибо. - person Miro; 24.09.2018