pymongo无法连接到远程服务器上的数据库

jon*_*opf 2 mongodb pymongo

我已经设置了一个在外部主机服务器上运行的mongodb服务器,我可以通过在客户端计算机shell中执行以下操作来轻松连接mongo客户端:

162.243.27.34 --port 27017
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用python使用pymongo连接到服务器时,我得到以下输出

import pymongo
client = pymongo.MongoClient('162.243.27.34', 27017)
Run Code Online (Sandbox Code Playgroud)

错误

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/pymongo/mongo_client.py", line 352, in __init__
    raise ConnectionFailure(str(e))
pymongo.errors.ConnectionFailure: could not connect to 162.243.27.34:27017: [Errno 111] Connection refused
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

更新 - 更多信息

IP 162.243.27.34上的数据库服务器和客户端是具有不同IP的单独服务器.在上述示例中,在两种情况下,我都尝试从远程客户端服务器进行连接,而不是连接到"localhost".

数据库服务器上有防火墙,但客户端确实有访问权限,并且mongo客户端命令行程序从客户端服务器连接正常我假设从客户端连接到数据库服务器没有网络问题,而是我如何使用python进行连接存在问题.

更新2

运行命令:

cat /etc/mongodb.conf
Run Code Online (Sandbox Code Playgroud)

说明:

bind_ip = 127.0.0.1
#port = 27017
Run Code Online (Sandbox Code Playgroud)

我也使用MongoDB shell版本:2.0.4

A. *_*vis 5

替换bind_ip = 127.0.0.1with bind_ip = 0.0.0.0以允许从远程主机连接到MongoDB.