Pymongo – Kann nicht mit dem Mongodb auf EC2 verbunden werden

Ich bin mit einem Mongodb Server auf EC2 verbunden. Die Mongo-Sammlungen benötigen eine Authentifizierung.

Ich habe alles versucht, aber ich bekomme den folgenden Fehler und kann es nicht scheinen, es zu korrigieren.

  • Eleganter Weg, um Thumbnails von Bildern zu erstellen, die auf s3 mit ec2 gespeichert sind und mit Schienen auf dem Ende kommunizieren?
  • Installieren und machen Sie tkinter Arbeit auf AWS EC2 Instanz
  • Boto Execute Shell Befehl auf ec2 Instanz
  • Berechtigung verweigert beim Versuch, ein Python-Paket auszuführen
  • AWS ec2 winreg nicht gefunden
  • Wie kann man eine Amazon EC2-Instanz aus einer Google App Engine App starten?
  • from pymongo import MongoClient mongo_username = "username" mongo_password = "password" ssh_user = "user" ssh_address = "ec2-**********.amazonaws.com" ssh_port = 22 private_key = "path/to/key/mykey.pem" def connect_to_mongo(): try: client = MongoClient("mongodb://"+mongo_username+":"+mongo_password+"@" + ssh_address, ssl = True, ssl_keyfile = private_key) db = client.myDB #Should 'admin' be there or 'myDB'? 'admin' at least get if(auth) passed, while 'myDB' doesn't auth = client.admin.authenticate(mongo_username,mongo_password) if(auth): print "MongoDB connection successful" col = db.myCollection.count() else: print "MongoDB authentication failure: Please check the username or password" client.close() except Exception as e: print "MongoDB connection failure: Please check the connection details" print e if __name__ == "__main__": connect_to_mongo() 

    Ausgabe :

     MongoDB connection successful MongoDB connection failure: Please check the connection details SSL handshake failed: EOF occurred in violation of protocol (_ssl.c:590) 

  • Verwenden Sie `for` in` print () `gibt einen Generator auf Python 3.x?
  • Weird Lambda Verhalten im Listenverständnis
  • Rekursive Iteration durch verschachtelte json für spezifische Schlüssel in Python
  • Pythons Listenverständnis vs .NET LINQ
  • Verstehen von verschachteltem Listenverständnis
  • Summiere jeden Wert in einer Liste von Tupeln
  • 2 Solutions collect form web for “Pymongo – Kann nicht mit dem Mongodb auf EC2 verbunden werden”

    EC2 schließt standardmäßig 27017 Port. Erstellen Sie die in-bound Regel wie hier beschrieben und hier .

    Ich habe alle Optionen ausprobiert.

     client = MongoClient("mongodb://" + ssh_address+":27017") # No private key passing auth = client.myDB.authenticate(mongo_username,mongo_password) # Authenticate to myDB and not admin db = client.myDB 

    Also grundsätzlich brauche ich keinen privaten Schlüssel (das ist erforderlich, wenn man ssh über die EC2), da der Hafen wurde bereits für alle eingehenden IPs (ich denke, das war eine wichtige Tatsache, die ich hätte wissen und posted in die Frage).

    Auch habe ich versucht, über die admin DB zu authentifizieren, was ich nicht hätte machen sollen, weil ich nur Zugang zu myDB .

    Python ist die beste Programmiersprache der Welt.