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

标签 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 以外的端口上运行,如果是,我如何才能找出它在哪个端口上运行?

请帮忙 谢谢你

最佳答案

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

关于python - 无法连接到远程计算机上运行的 mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6760375/

相关文章:

python - 是否可以在 Google App Engine 中使用 PyMongo?

python - 在 Google App Engine 上的 Django 中获取没有数据库访问权限的登录用户的 key ?

python 2.6。单元测试框架,断言 : help required

python - Dynaconf 使用 .secrets.toml 覆盖 settings.toml 中的部分

python - 当文件位于本地存储时,如何使用 boto3 将文件上传到 s3

java - Spring 数据 MongoDB : aggregation framework - sort with nested property throws invalid reference

Javascript 比较 bool 值

javascript - 为什么我的 Mongoose 文档没有在 bcrypt 函数内正确更新?

python - 如何在 pymongo 中使用 find_one 获取最新记录

python - mongodb查询时间太长