无法连接到远程计算机上运行的mongodb

时间:2011-07-20 10:21:40

标签: python mongodb pymongo

我在远程服务器上运行mongodb。我可以ssh到远程服务器并从远程计算机上的shell连接到mongodb。但是我必须从我的python脚本连接到那个mongodb实例。 但是,我无法使用以下命令直接从运行Linux的本地计算机上的shell连接到mongodb:

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以外的端口上运行,如果是这样,我怎样才能找到它正在运行的端口?

请帮助 谢谢

1 个答案:

答案 0 :(得分:4)

您可以在运行mongodb的计算机上使用netstat -a -p来查看它所连接的端口。 (netstat -a列出所有连接,-p提供拥有连接的程序的名称。)还要确保远程计算机允许该端口上的外部连接(连接未被防火墙阻止)并且那个mongodb正在接受远程连接。