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

Comment exécuter mysqladmin flush-hosts sur Amazon RDS

Dans certains cas, lors de l'exécution de MySQL sur Amazon RDS (ou ailleurs), il peut être nécessaire de FLUSH tous les host enregistrements de MySQL. En règle générale, cela est nécessaire lorsque l'erreur "Host 'host_name' is blocked" se produit, ce qui empêchera des connexions supplémentaires à partir de ce host_name particulier .

Le host_name blocked l'erreur se produit lorsque le nombre de max_connect_errors spécifiée dans la configuration de MySQL est dépassée, ce qui signifie qu'un hôte particulier a tenté de se connecter trop de fois sans succès. Il s'agit d'une mesure de sécurité mise en place par MySQL pour empêcher les attaques injustifiées d'hôtes/d'utilisateurs qui ne disposent pas des informations d'identification appropriées, mais cela peut parfois se produire par erreur et peut devoir être résolu en vidant les hôtes.

Que fait le rinçage des hôtes ?

Avec un utilisateur MySQL avec les privilèges appropriés, exécute un FLUSH , MySQL peut effacer les tables de vidage, les verrous et les systèmes de cache interne en fonction des options transmises . Dans le cas de FLUSH HOSTS; , MySQL videra le cache de l'hôte, ce qui signifie que l'enregistrement de MySQL indiquant quels hôtes sont actuellement ou se sont récemment connectés est réinitialisé, permettant d'autres connexions à partir desdits hôtes.

Exécuter FLUSH HOST directement

Même s'il se peut que vous soyez complètement empêché de vous connecter à MySQL, dans certains cas, il est possible que le système "sauvegarde" un emplacement de connexion qui n'est disponible que pour le primaire ou root compte.

Pour Amazon RDS , ce nom d'utilisateur se trouve généralement dans votre console de gestion en tant que nom par défaut ou "Maître". Essayez de vous connecter à votre serveur MySQL avec ce nom d'utilisateur principal.

Si vous êtes en mesure de vous connecter, vider vos hôtes est aussi simple que d'exécuter la commande FLUSH HOSTS; Instruction MySQL :

FLUSH HOSTS;

Vous devriez maintenant avoir effacé votre host_name blocked erreur et pouvoir se connecter avec votre compte MySQL standard.

Purge des hôtes à distance à l'aide de MySQLAdmin

Dans le cas où vous ne parvenez pas à vous connecter à MySQL en tant que compte principal et recevez toujours blocked erreurs, l'option suivante consiste à se connecter au serveur à distance et à exécuter le flush commande en utilisant mysqladmin outil.

Pour ce faire, vous devez être connecté à un autre Instance EC2 ou serveur ayant accès au serveur RDS générant l'erreur.

Une fois connecté, exécutez la commande suivante avec les options appropriées substituées entre <> :

$ mysqladmin -h <RDS_ENDPOINT_URL> -P <PORT> -u <USER> -p flush-hosts

En cas de succès, le flush-hosts La commande sera exécutée comme prévu et vous pourrez désormais vous connecter à MySQL normalement.

Redémarrage de l'instance RDS

La dernière option, si tout le reste échoue, consiste simplement à se connecter au panneau de configuration de gestion RDS et à redémarrer manuellement l'instance RDS qui génère l'erreur. Cela réinitialisera effectivement le hosts cache pour vous, même si cela peut ne pas être idéal dans des circonstances de production.