2011-07-20 142 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