web-dev-qa-db-fra.com

Se connecter à MySQL sur AWS à partir d'une machine locale

J'essaie de configurer un environnement de développement sur ma machine locale qui accède à une base de données MySQL sur AWS, mais je reçois toujours un message "Connexion impossible".

mysql_connect('xxx.xxx.xxx.xxx:3306', 'USERNAME', 'PASSWORD');

J'ai également commenté l'adresse de liaison dans le fichier my.cnf et accordé des autorisations à l'adresse IP qui se connecte.

Quelqu'un a-t-il déjà réussi à le faire fonctionner?

25
Jeffrey Hunter

J'imagine que c'est un pare-feu d'Amazon. Essayez d'utiliser un tunnel SSH:

http://blogs.Oracle.com/divyen/entry/connecting_mysql_server_on_Amazon

Remarque: N'ouvrez pas MySQL sur Internet, même avec le filtrage IP. Les tunnels SSH sont beaucoup plus sécurisés. Meilleur aspect: le tunnel pourrait être accessible avec localhost: 3306 sur votre machine, pas besoin de changer la configuration:)

13
Stephan B

Mon expérience d’août 2013 a été la suivante pour une instance RDS créée avec Elastic Beanstalk.

0) En supposant que l'instance RDS a déjà été créée
1) Connectez-vous à la console de gestion: https://console.aws.Amazon.com/console/home
2) Sélectionnez Services-> VPC
3) Sélectionnez les groupes de sécurité (sur le côté gauche) 
4) Sélectionnez le groupe dont la description indique "Groupe de sécurité pour la base de données RDS ..." 
5) Dans le panneau du groupe de sécurité sélectionné en bas de la page, choisissez "Entrant".
6) Sélectionnez MySQL comme règle.
7) Tapez l'adresse IP de ma machine locale, par exemple. 145.23.32.15/32
8) Cliquez sur Ajouter une règle et appliquer les modifications à la règle.

Après cela, je pouvais me connecter à la base de données en utilisant mysql à partir de ma machine locale.

a) Dans la console de gestion, sélectionnez Services-> RDS.
b) Cliquez sur les instances de base de données (je n'en ai qu'une) et sélectionnez "Aller à la page de détails" pour l'instance requise.
c) Obtenir l'hôte et le port à partir du terminal
d) Depuis une session de terminal, faites quelque chose comme: mysql --Host blah.blah.blah.us-west-2.rds.amazonaws.com --port 3306 -u mon-nom-utilisateur -p

34
mikemay

Si vous utilisez MySql sur AWS via une instance RDS, vous devez ajouter l'adresse IP à partir de laquelle vous souhaitez vous connecter aux "Groupes de sécurité DB". Pour ce faire, accédez à votre AWS Managment Console et sélectionnez RDS .
1. Sélectionnez "Groupes de sécurité DB" dans le panneau de gauche
2. Sélectionnez "default"
3. Sélectionnez "CIDR/IP" dans la zone de sélection et entrez l'adresse IP publique de votre poste de travail. Exemple: 
23.234.192.123/32 (n'oubliez pas le/32 pour une seule ip)
4. Cliquez sur "Ajouter"
5. Attendez quelques minutes pour qu’il entre en vigueur, puis connectez votre client MySql .

Ceci s'applique uniquement aux instances RDS. Si vous utilisez MySql installé sur une instance EC2, les instructions sont les mêmes que pour accéder à MySql depuis n'importe quel ordinateur distant.

29
Cbox

J'utilise MySQL Workbench http://www.mysql.com/products/workbench/ avec RDS et cela fonctionne très bien. Très facile à créer et à sauvegarder une nouvelle instance de service de base de données. Cliquez sur "Nouvelle instance de serveur" sous "Administration du serveur" et suivez les instructions. Vous devrez entrer les informations fournies dans la page Web AWS RDS pour cette instance (par exemple, son point de terminaison).

REMARQUE: pour que vous puissiez réellement vous connecter, vous DEVEZ ajouter votre adresse IP dans les "Groupes de sécurité de la base de données". Le lien se trouve dans la colonne de gauche, intitulée "Navigation". J'utilise l'option "CIDR/IP" (l'autre est le groupe de sécurité EC2). Assurez-vous d'inclure un "/ ##" après l'adresse IP, tel que le "/ 32" utilisé dans l'exemple (vous le verrez sur la page). Dans quelques secondes, l'adresse IP devrait être autorisée.

Ensuite, retournez dans MySQL Workbench et terminez le processus de création d'une nouvelle instance de serveur.

Pour utiliser la connexion, votre code pourrait ressembler à quelque chose comme ceci (des extraits de mon code Java):

String url = "jdbc:mysql://yourdatabasename.foo.us-east-1.rds.amazonaws.com:3306/";
String userName = "your_user_name";
String password = "your_password";
String dbName = "your_db_name";
String driver = "com.mysql.jdbc.Driver";
Connection connection = DriverManager.getConnection(url + dbName, userName, password);
2
chrisco

Je suis sur un ordinateur Windows 7 et j'ai dû apporter les 3 modifications suivantes pour pouvoir se connecter à AWS RDB.

  1. Mise à jour du groupe de sécurité VPC dans la console AWS (similaire à celle décrite ci-dessus par mikemay)

    • De https://console.aws.Amazon.com , cliquez sur Services (en haut à gauche) et choisissez VPC. 
    • Ensuite, sélectionnez les groupes de sécurité
    • Cliquez sur le groupe de sécurité qui porte la description "Groupe de sécurité pour RDS DB ..."
    • Dans l'onglet "Entrant", choisissez "MYSQL" dans la liste déroulante Créer une nouvelle règle. 
    • Ajoutez votre adresse IP au format CIDR et cliquez sur Ajouter une règle.
    • Cliquez sur Appliquer les modifications de règle.
  2. mise à jour de my.cnf dans la configuration MySQL locale

    • Remplacez "bind-address = 127.0.0.1" par "bind-address = 0.0.0.0"
    • Commentez "sautez la mise en réseau"
  3. Désactiver le pare-feu Windows

    • Allez dans Panneau de configuration/Système et sécurité/Pare-feu Windows et désactivez le Pare-feu Windows.

Après ces changements, je peux me connecter à la fois

  • MySQL WorkBench utilisant Database-> Connect to Database
  • Invite de commande avec 

    mysql.exe -h <AWS DB Endpoint> -U <UserName> -P <Port Number, likely 3306> -p
    
1
user3078359

Lorsque nous créons, RDS doit configurer le pare-feu pour accepter les connexions mySQL d'instances locales ou autres. Par conséquent, le paquet est supprimé au niveau du pare-feu.

  • Connectez-vous à votre console AWS Allez à RDS

 enter image description here

Notez le groupe de sécurité de votre serveur MySQL (dans mon cas, awseb-e)

  • cliquez sur les groupes de sécurité 
  • cliquez sur votre groupe dans le menu central awseb
  • cliquez sur l'onglet entrant

Sélectionnez MySQL dans la liste, ajoutez les détails de votre serveur client et enregistrez la règle.

 enter image description here REMARQUE: une fois que vous avez choisi mon adresse IP, AWS sélectionne votre adresse IP, si vous avez besoin d'une autre utilisation d'IP. 

https://www.whatismyip.com/my-ip-information/

et ajoutez votre IP4 IP

 enter image description here

0
vaquar khan