2

リモートサーバーでmongodbを実行しています。リモートサーバーにSSHで接続し、リモートマシンのシェルからmongodbに接続できます。ただし、Pythonスクリプトからそのmongodbインスタンスに接続する必要があります。ただし、次のコマンドを使用して、Linuxを実行しているローカルマシンのシェルから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以外のポートで実行されていることを意味しますか?その場合、どのポートで実行されているかを確認するにはどうすればよいですか?

助けてくださいありがとう

4

1 に答える 1

4

netstat -a -pmongodbを実行しているマシンで使用して、接続されているポートを確認できます。(netstat -aすべての接続を一覧表示し、接続-pを所有するプログラムの名前を提供します。)また、リモートコンピューターがそのポートで外部接続を許可し(接続がファイアウォールによってブロックされていない)、mongodbがリモート接続を受け入れていることを確認します。

于 2011-07-20T10:32:24.623 に答える