Mysql
 sql >> Base de données >  >> RDS >> Mysql

Impossible de se connecter à distance à l'installation EC2 MySQL

le meilleur outil que j'ai trouvé était sqlyog, (peut-être aussi mysql workbench), qui indiquerait en fait le nom d'hôte d'où vous venez lors de l'échec de la connexion.

La raison pour laquelle je l'aime est qu'il maintient la sécurité renforcée, affichant quelque chose comme Accès refusé pour l'utilisateur "

c'est important car ce nom d'hôte (hdm38.newyork.comcastbusiness.net ) est celui que j'utilise pendant mysql create user au lieu d'utiliser des caractères génériques comme %

Je laisse la connexion ci-dessus échouer, mais je note le nom d'hôte ci-dessus. Vous le verrez ci-dessous.

Une liste de contrôle rapide

1) votre utilisateur distant se connecte via un compte qui a été créé avec le user,host approprié entrées (regardez la sortie de select user,host from mysql.user order by 1,2 )

CREATE USER 'santa'@'hdm38.newyork.comcastbusiness.net' IDENTIFIED BY 'mypassword';

Avec cette commande ci-dessus, nous avons maintenant un nouvel utilisateur qui a une chance d'entrer. Je ne peux rien faire. Impossible de passer à une base de données. Fondamentalement, ils peuvent simplement faire des choses comme select now();

2) vous avez effectué des grants avec flush privileges (au moins le premier)

GRANT ALL PRIVILEGES ON mydb123.* TO 'santa'@'hdm38.newyork.comcastbusiness.net';

Notre utilisateur avec la commande ci-dessus peut maintenant faire n'importe quoi dans la base de données/schéma mydb123. Explorez la commande Accorder ci-dessus dans le manuel pour affiner l'accès au strict minimum pour les utilisateurs que vous créez.

Si vous êtes nouveau dans la sécurité mysql, n'incluez pas le WITH GRANT OPTION jusqu'à ce que vous le recherchiez.

Il y a ceux qui diraient que le nom d'hôte ci-dessus est '%' pour les étapes 1 et 2. Cela signifie que le père Noël peut se connecter à partir de n'importe quel hôte. Le choix t'appartient. Commencez serré, détendez-vous une fois que vous êtes arrivé à quelque chose et que vous avez fait des recherches à ce sujet.

3) vous avez modifié mon.cnf et changé bind-address loin de 127.0.0.1 ou localhost , en faveur de 0.0.0.0

Si l'adresse de liaison n'est pas 0.0.0.0 , vous vous connectez uniquement en ssh

4) vous avez modifié mon.cnf et avoir une ligne de rappel #skip-networking . Même si vous devez créer la ligne juste pour la remplacer, faites-le.

3/4 changements nécessitent le redémarrage du démon mysql

5) problèmes de pare-feu. Donc, pour EC2, vous avez besoin de votre AWS Security Group qui est actif pour l'instance pour inclure l'ouverture du port 3306