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.