3

我有一个在 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 服务器,但我无法连接到远程数据库似乎很奇怪。还是有其他问题?

4

3 回答 3

2

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

您使用的是 C 扩展名吗?(尝试 pymongo.has_c())。我不认为 C 扩展甚至会建立在 PPC 上,但如果它这样做了,那几乎肯定是它不起作用的原因。您可以使用 w/o C 安装 python setup.py install --no_ext,然后我希望一切正常。

——迈克·迪罗夫

于 2010-06-05T00:15:32.600 回答
0

我能够通过使用MongoClient而不是弃用的Connection.

来自MongoDB页面的Python 驱动程序

警告已弃用:连接已弃用。请改用 MongoClient。

有关更多信息,请参阅 Python 的新MongoClient 文档

于 2013-06-08T13:34:18.073 回答
0

我在python3.8上遇到了同样的问题,我尝试升级和降级 pymongo但结果是相同的Connection reset by peer

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

于 2021-06-08T03:04:55.990 回答