58 votes

Comment exécuter la commande "mysqladmin flush-hosts" sur une instance de serveur de base de données Amazon RDS ?

J'ai un échec du serveur de base de données, dit que l'hôte est bloqué en raison de nombreuses erreurs de connexion. Il me demande de débloquer avec 'mysqladmin flush-hosts'.

comment et où dois-je exécuter cette commande sur notre serveur de base de données amazon rds ?

Merci.

83voto

barryhunter Points 10392

Pour MySQL normal, il suffit de se connecter en tant que super utilisateur administratif 'Root', et de lancer la commande :

FLUSH HOSTS

Même dans le cas d'un trop grand nombre de connexions, MySQL devrait garder une connexion en réserve pour qu'un super utilisateur puisse se connecter.

El mysqladmin Le client se connecte généralement en tant que Root de toute façon et émet le SQL ci-dessus.

3 votes

Merci, c'est exactement ce dont j'avais besoin : un peu de contexte. En fait, mysqladmin fonctionne aussi avec RDS (tant que vous utilisez un utilisateur avec la permission de le faire (c'est-à-dire Root) - ce qui n'était pas mon cas).

0 votes

C'est une excellente réponse, mais elle ne s'applique pas à AWS.

0 votes

Pourquoi pas ? Ne pouvez-vous pas exécuter FLUSH HOSTS sur AWS ?

30voto

Chris Points 171

Connectez-vous à toute autre instance EC2 que vous possédez, qui a accès à l'instance RDS en question et sur laquelle mysqladmin est installé, et exécutez les commandes suivantes

mysqladmin -h <RDS ENDPOINT URL> -P 3306 -u <USER> -p flush-hosts

vous serez invité à saisir votre mot de passe

1 votes

Il ne doit pas nécessairement provenir d'une instance EC2. Elle peut également être effectuée à partir d'une machine locale. Où que soit installé mysql.

7 votes

Cela ne fonctionne pas depuis une instance EC2 de beanstalk vers un hôte mysql RDS. L'utilisation de la commande mysqladmin pour se connecter à l'hôte produit une erreur : mysqladmin : connect to server at 'challengefinder-rds.crstas8123.us-west-1.rds.amazonaws.com' failed error : 'Host 'ip-10-170-12-12.us-west-1.compute.internal' is blocked because of many connection errors ; unblock with 'mysqladmin flush-hosts''.

0 votes

Vous pouvez utiliser un autre ordinateur - ajoutez simplement votre adresse IP au groupe de sécurité de cette instance RDS et vous pourrez alors utiliser mysqladmin depuis votre poste de travail.

15voto

Garreth McDaid Points 658

Lorsqu'une instance Amazon RDS est bloquée parce que la valeur de max_connect_errors a été dépassée, vous pouvez ne peut pas utiliser l'hôte qui a généré les erreurs de connexion pour lancer la commande "flush hosts", car le serveur MySQL exécuté sur l'instance bloque à ce moment-là les connexions provenant de cet hôte.

Vous devez donc lancer la commande "flush hosts" à partir de un autre instance EC2 ou le serveur distant qui a accès à cette instance RDS.

mysqladmin -h [YOUR RDS END POINT URL] -P 3306 -u [DB USER] -p flush-hosts

Si cela implique le lancement d'une nouvelle instance, ou la création/modification de groupes de sécurité pour autoriser l'accès externe, il peut être plus rapide de se connecter simplement à l'interface utilisateur RDS et de redémarrer l'instance RDS qui est bloquée.

2 votes

Le redémarrage de l'instance a été le plus simple pour moi.

11voto

Felixander Weber Points 349

J'ai corrigé cette erreur sur mon instance RDS en la redémarrant à partir de la console de gestion AWS. HTH

[edit : lol downvotes]

1 votes

Merci beaucoup. J'ai essayé la solution ci-dessus mais je n'ai pas pu me connecter avec mysqladmin non plus à cause de la même erreur !

5voto

Ryan Points 58

Puisque les hôtes sont bloqués, essayez de vous connecter depuis un autre hôte et exécutez la commande mysqladmin flush-hosts.

mysqladmin -h <RDS ENDPOINT URL> -P <PORT> -u <USER> -p flush-hosts

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