MongoDB: Verbindungsreset durch Peer
Frage
Ich habe einen Mongo -Server auf einer Ubuntu -Box und versuche mit der üblichen Syntax mit Pymongo herzustellen:
from pymongo import Connection
c = Connection('db.example.com', 27017)
Dies funktioniert bei einem kürzlich erschienenen Intel Mac (OS 10.6) einwandfrei. Der gleiche Code in einem älteren G5 -Turm (10.5) wirft jedoch diesen Fehler aus:
pymongo.errors.AutoReconnect: [Errno 54] Connection reset by peer
Die Mongo -Ausgabe auf den Serverberichten:
connection accepted from oldmac.example:57681 #3
bad recv() len: 973078528
end connection oldmac.example:57681
Ich weiß, dass ich den MongoDB -Server nicht vom PPC -Mac ausführen kann, aber es scheint seltsam, dass ich keine Verbindung zur Remote -Datenbank herstellen könnte. Oder ist noch etwas schuld?
Lösung
Sieht so aus, als hätte Mike Dirolf Ihre Frage bereits in der MongoDB Google -Gruppe beantwortet. Aber für Menschen, die das gleiche Problem erleben und sich auf dieser Seite befinden, die Lösung von Mike Dirolf:
Verwenden Sie die C -Erweiterung? (Versuchen Sie es mit pymongo.has_c ()). Ich würde nicht glauben, dass die C -Erweiterung sogar auf PPC aufbauen würde, aber wenn dies der Fall wäre, ist dies mit ziemlicher Sicherheit der Grund, warum dies nicht funktioniert. Sie können w/o c mit installieren
python setup.py install --no_ext
Und dann würde ich erwarten, dass die Dinge funktionieren.- Mike Dirolf
Andere Tipps
Ich konnte das gleiche Problem mit Verwendung lösen MongoClient
statt der veralteten Connection
.
Von dem Python -Fahrer für MongoDB Seite
Warnung veraltet: Die Verbindung ist veraltet. Bitte verwenden Sie stattdessen Mongoclient.
Weitere Informationen finden Sie im neuen Mongoclient -Dokumentation für Python.