Не удалось подключиться к mongodb, работающему на удаленной машине

У меня есть mongodb, работающий на удаленном сервере. Я могу подключиться к удаленному серверу по ssh и подключиться к mongodb из оболочки на удаленной машине. Однако мне нужно подключиться к этому экземпляру mongodb из моего скрипта Python. Однако я не могу подключиться к mongodb напрямую из оболочки на моей локальной машине под управлением Linux с помощью команды:

mongo <remote_ip>:27017

или через pymongo с помощью

connection = pymongo.Connection("<remote_ip>", 27017)

Я получаю следующую ошибку при использовании pymongo:

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/usr/local/lib/python2.6/dist-packages/pymongo-1.11-py2.6-linux-i686.egg/pymongo/connection.py", line 370, in __init__
    self.__find_master()
  File "/usr/local/lib/python2.6/dist-packages/pymongo-1.11-py2.6-linux-i686.egg/pymongo/connection.py", line 605, in __find_master
    raise AutoReconnect("could not find master/primary")
AutoReconnect: could not find master/primary

Что может быть причиной этой проблемы? Означает ли это, что mongo работает на порту, отличном от 27017, и если да, то как я могу узнать, на каком порту он работает?

Пожалуйста, помогите Спасибо


person Jim    schedule 20.07.2011    source источник


Ответы (1)


Вы можете использовать netstat -a -p на машине с mongodb, чтобы увидеть, к какому порту он подключен. (netstat -a перечисляет все соединения, а -p предоставляет имя программы, владеющей соединением.) Также убедитесь, что удаленный компьютер разрешает внешние соединения на этом порту (соединения не блокируются брандмауэром) и что mongodb принимает удаленные соединения. .

person agf    schedule 20.07.2011
comment
Не могли бы вы рассказать о процедуре, позволяющей машинам разрешать удаленные подключения? - person TharunRaja; 21.09.2015