80 votes

Connectez-vous à mysql sur Amazon EC2 à partir d'un serveur distant

Je veux me connecter à db sur EC2 depuis ma machine locale, je ne peux pas faire et j'ai tout essayé - j'utilise cette commande pour me connecter à EC2:

 mysql -uUSERNAME -hEC2_IP -pPASSWORD
 

Cette erreur est générée

 ERROR 2003 (HY000): Can't connect to MySQL server on 'IP' (110)
 

J'ai modifié my.cnf avec

 skip networking
bind-address            = 0.0.0.0
 

Toujours pas en mesure de se connecter à la base de données

92voto

mohamed elbou Points 754

comme mentionné dans les réponses ci-dessus, il peut être lié aux groupes de sécurité AWS et à d'autres choses. mais si vous avez créé un utilisateur et lui avez donné un accès à distance '%' et que vous obtenez toujours cette erreur, vérifiez votre fichier de configuration mysql, sur debian, vous pouvez le trouver ici: /etc/mysql/my.cnf et trouvez la ligne:

 bind-address            = 127.0.0.1
 

et changez-le en:

 bind-address            = 0.0.0.0
 

et redémarrez mysql.

sur debian / ubuntu:

 /etc/init.d/mysql restart
 

J'espère que cela fonctionne pour vous.

65voto

Sandip Dhummad Points 343

Il pourrait être l'une des raisons suivantes:

  1. Vous avez besoin de faire une entrée dans l'Amazonie Groupe de Sécurité à distance accès à partir de votre ordinateur à l'instance Amazon EC2. :- Je crois que cette est fait par vous que de votre question, il semble que vous avez déjà fait une entrée avec 0.0.0.0, ce qui permet à tous d'accéder à la machine.
  2. MySQL ne permettant pas à l'utilisateur de se connecter depuis la machine distante:- Par par défaut MySql crée racine id utilisateur avec un accès administrateur. Mais racine id de l'accès est limité à localhost seulement. Cela signifie que l'utilisateur root id avec le bon mot de passe ne fonctionnera pas si vous essayez d'accéder à MySql à partir d'une machine distante. Pour résoudre ce problème, vous devez permettre soit la racine de l'utilisateur ou une autre DB utilisateur d'accéder à MySQL depuis la distance de la machine. Je recommande de ne pas autoriser root id utilisateur d'accéder DB à partir de l'ordinateur distant. Vous pouvez utiliser le caractère générique % pour spécifier une machine distante.
  3. Vérifier si la machine locale pare-feu n'est pas activé. Et si son permis assurez-vous que le port 3306 est ouvert.

Veuillez aller à travers le lien suivant: Comment puis-je Activer l'Accès à Distance À un Serveur MySQL?

32voto

Tom Mac Points 5104

Il se pourrait que vous n'avez pas configuré le Amazon Groupe de Sécurité attribué à votre Instance EC2 à accepter les demandes entrantes sur le port 3306 (port par défaut de MySQL).

Si c'est le cas, alors vous pouvez facilement ouvrir le port pour le groupe de sécurité en quelques clics de bouton:

1) connectez-vous à votre Console AWS et aller à 'EC2'

2) Sur le menu de gauche, sous "Network & Security' aller à 'les Groupes de Sécurité'

3) Vérifier la Sécurité du Groupe en question

4) Cliquez sur "Entrants onglet'

5) Choisissez 'MYSQL' dans la liste déroulante et cliquez sur "Ajouter une Règle"

Peut-être pas la raison, mais en vaut un aller...

5voto

New Alexandria Points 3106

Si cette question semble se poser un autre problème commun que vous pouvez obtenir est le DB utilisateur a été mal configuré. C'est une administration mysql et problème d'autorisations:

  1. EC2_DB lancé avec IP 10.55.142.100
  2. EC2_web lancé avec IP 10.55.142.144
  3. EC2_DB et EC2_WEBare dans le même groupe de sécurité d'accès à l'échelle de votre DB port (3306)
  4. EC2_DB a une DB mysql qui peut être atteint localement par le DB utilisateur root ('root'@'localhost')
  5. EC2_DB DB mysql a un utilisateur distant 'my_user'@'%' IDENTIFIED BY PASSWORD 'password'
  6. Un bash appel à mysql à partir de EC2_WEB échoue: mysql -umy_user -p -h ip-10-55-142-100.ec2.internal comme hôte références à l'explicite IP, DNS, etc.

Étape 6 échoue parce que la DB mysql a le tort de l'utilisateur autorisations. Il a besoin de ceci:

GRANT ALL PRIVILEGES ON *.* TO 'my_user'@'ip-10-55-142-144.ec2.internal' IDENTIFIED BY PASSWORD 'password'

Je voudrais croire que, % fonctionne pour n'importe quelle serveur distant, mais je n'ai pas trouvé que cela soit le cas.

S'il vous plaît laissez-moi savoir si cela vous aide.

4voto

Edwin Wachs Points 21

Changer /etc/mysql/my.cnf :

 bind-address            = 127.0.0.1 to 0.0.0.0
 

Créez un utilisateur avec '%' host et redémarrez:

 /etc/init.d/mysql restart
 

Travaille pour moi! :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X