2011-07-20 47 views
2

我有mongodb在远程服务器上运行。我可以SSH到远程服务器,并从远程机器上的shell连接到mongodb。不过,我必须从我的python脚本连接到该mongodb实例。无法连接到运行在远程机器上的mongodb

mongo <remote_ip>:27017 

或通过pymongo使用

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

我使用pymongo时,你得到如下错误: 但是,即时通讯无法使用命令连接直接从外壳到MongoDB的在我的本地机器上运行Linux的:

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以外的端口上,如果是的话,我怎么知道它运行在哪个端口上?

请帮助 谢谢

回答

4

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

+1

请您详细说明让机器允许远程连接的程序 – TharunRaja

相关问题