我有一个在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服务器,但似乎很奇怪我无法连接到远程数据库。或者是其他的错误?
答案 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
来解决同样的问题。
DEPRECATED:不推荐使用连接。请使用MongoClient 代替。
有关详细信息,请参阅适用于Python的新MongoClient documentation。
答案 2 :(得分:0)
我在使用 python3.8 时遇到了同样的问题,我尝试升级和降级 pymongo,但结果是相同的 对等方重置连接 b>.
为了克服这个问题卸载python3.8并安装python3.7并且它工作正常。现在我可以连接到 mongodb 并能够执行查询。