web-dev-qa-db-fra.com

Comment se connecter à l'instance MongoDB EC2

nous avons une instance EC2 MongoDB 2.4 d’Amazon MarketPlace . lorsque j’essaie d’y accéder depuis mon ordinateur à l’aide de la commande mongo, comme suit:

mongo xx-xx-xx-xx-xx.compute-1.amazonaws.com

je reçois l'erreur suivante 

Error: couldn't connect to server xx-xx-xx-xx-xx.compute-1.amazonaws.com:27017 at src/mongo/Shell/mongo.js:147
exception: connect failed
  • je peux me connecter à l'instance distante à l'aide de ssh afin qu'elle soit accessible.
  • le port est le port par défaut 27017.
  • mongod est en cours d'exécution et travaille sur l'instance distante.

des suggestions sur la façon de résoudre ce problème?

15
user2708100

Comme Frisky l'a dit, vous devez ouvrir le port 27017 sur la console de groupe de sécurité EC2. .__ (Pour en savoir plus sur la procédure à suivre: http://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/authorizing-access-to-an-ininstance.html

Mais vous devez également modifier la variable bind_ip dans le fichier /etc/mongodb.conf. Vous devez commenter la ligne ou attribuer l'ip qui pourra y connecter la base de données. 

21
Jundiaius

Mongod étant en cours d’exécution et travaillant sur l’instance distante, vous pouvez accéder à votre contenu MongoDB via 

mongo xx-xx-xx-xx-xx.compute-1.amazonaws.com ou mongo machine_elastic_IP

Avant cela, vous devez ouvrir le port entrant pour cette machine.Le port par défaut 27017 est fermé pour le monde externe.

Pour plus d'informations, consultez: http://docs.aws.Amazon.com/gettingstarted/latest/wah/getting-started-security-group.html

7
deepakmodak

Amazon a créé le groupe de sécurité mongo sans l'ouverture de 27017 . Ports d'ouverture 27017 sur mon ordinateur a résolu le problème.

5
user2708100

Essayez d’accéder à xx-xx-xx-xx-xx.compute-1.amazonaws.com:27017 à partir du navigateur, si cela fonctionne, utilisez ssh dans l’instance. 

  • Arrêtez le serveur Mongodb
  • Supprimer le fichier /var/lib/mongodb/mongod.lock

redémarrez le serveur mongodb, et vérifiez si taper mongo prend dans un shell mongo ou donne une erreur. 

Si l'erreur est présente, quittez l'instance et à nouveau ssh pour rechercher $mongo, si elle ouvre un shell mongo. Essayez de redémarrer une fois que cela a changé, si l'erreur persiste après les modifications ci-dessus.

La seule préoccupation ici est, avant d'y accéder depuis n'importe quelle application. Mongodb devrait fonctionner indépendamment dans le terminal.

1
Bijendra

EC2 contrôlant l'accès à l'aide d'un groupe de sécurité, assurez-vous que la boîte accédant à mongo db Host est autorisée dans security group à accéder à cette boîte et que port est activé pour le même groupe de sécurité.

Un autre problème peut être iptables. Vérifiez Sudo service iptables status dans la boîte de dialogue mongodb et voyez quelles sont les règles.

Assurez-vous d’activer les ports appropriés conformément à la condition security de la boîte.

0
Confused

Les deux étapes suivantes ont activé la connexion à distance pour moi:

    1. Ouverture de la ligne entrante pour mon VPC sur le port 27017 VPC -> Sécurité -> Groupes de sécurité -> choisissez le cycle TCP de votre instance -> cliquez sur "Modifier les règles" -> ajoutez une règle de type: "Personnalisé TCP Rule ", Protocole: TCP, Plage de ports: 27017, Source: Custom 0.0.0.0/0 -> save
    1. SSH dans votre instance -> Sudo vi /etc/mongod.conf -> set bindIp: 0.0.0.0 -> enregistrer -> Sudo service mongod restart

Après cela, vous pourrez vous connecter à votre instance mongo distante avec mongo --Host YOUR_INSTANCE_IP

0
Stas Ezersky