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.

  • Python Django Gmail SMTP-Setup
  • Wie SSH und führen Sie Befehle in EC2 mit boto3?
  • Wie hört man Sellerie Arbeiter Prozess
  • Probleme mit SSH in eine neue EC2-Instanz mit Paramiko
  • Wie kann ich ein Python-Skript schreiben, das neue EC2-Instanzen starten kann?
  • AWS ec2 winreg nicht gefunden
  • 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) 

  • Python-Join-Liste der Strings mit Komma aber mit einigen Bedingungen - Code-Refraktion
  • Wenn i! = 0 im Listenverstehen gibt Syntaxfehler
  • Wie kann ich einen Unicode-Typ mit einem String in Python vergleichen?
  • Wie man zwei für Schleifen in der Liste Verständnis python Rahmen
  • Wie bekomme ich eine Liste von Indizes von Nicht-Null-Elementen in einer Liste?
  • Python - Summe funktioniert nicht in der Liste Verständnis Syntax, wenn die Quelle Datei ist
  • 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.