Mongodb:通过对等方重置连接

时间:2010-06-02 21:15:11

标签: mongodb pymongo

我有一个在Ubuntu盒子上运行的Mongo服务器,我正在尝试使用通常的语法连接到pymongo:

from pymongo import Connection
c = Connection('db.example.com', 27017)

这在最近型号的Intel mac(OS 10.6)上运行良好。但是,较旧的G5塔(10.5)上的相同代码会引发此错误:

pymongo.errors.AutoReconnect: [Errno 54] Connection reset by peer

服务器上的mongo输出报告:

connection accepted from oldmac.example:57681 #3
bad recv() len: 973078528
end connection oldmac.example:57681

我知道我无法从PPC Mac运行mongodb服务器,但似乎很奇怪我无法连接到远程数据库。或者是其他的错误?

3 个答案:

答案 0 :(得分:2)

看起来Mike Dirolf已在MongoDB Google Group中回答了您的问题。但对于遇到相同问题并发现自己在此页面上的人来说,Mike Dirolf的解决方案:

  

您使用的是C扩展吗? (尝试   pymongo.has_c())。我不会想   C扩展甚至可以构建   在PPC,但如果它这样做几乎   当然不是这个原因   工作。您可以安装w / o C.   python setup.py install --no_ext和   然后我希望事情能够发挥作用。

     

- Mike Dirolf

答案 1 :(得分:0)

我可以使用MongoClient代替弃用的Connection来解决同样的问题。

来自Python driver for MongoDB页面

  

DEPRECATED:不推荐使用连接。请使用MongoClient   代替。

有关详细信息,请参阅适用于Python的新MongoClient documentation

答案 2 :(得分:0)

我在使用 python3.8 时遇到了同样的问题,我尝试升级和降级 pymongo,但结果是相同的 对等方重置连接 b>.

为了克服这个问题卸载python3.8并安装python3.7并且它工作正常。现在我可以连接到 mongodb 并能够执行查询。