sql >> Database teknologi >  >> RDS >> Mysql

Sådan kører du mysqladmin flush-hosts på Amazon RDS

I nogle tilfælde, mens du kører MySQL på Amazon RDS (eller andre steder), kan det være nødvendigt at FLUSH alle host optegnelser fra MySQL. Dette er typisk påkrævet, når fejlen "Host 'host_name' is blocked" opstår, hvilket vil forhindre yderligere forbindelser fra det pågældende host_name .

host_name blocked fejl opstår, når antallet af max_connect_errors specificeret i MySQL's konfiguration er overskredet, hvilket betyder, at en bestemt vært forsøgte at oprette forbindelse for mange gange uden held. Dette er en sikkerhedsforanstaltning, som MySQL har indført for at forhindre uberettigede angreb fra værter/brugere, der ikke har de korrekte legitimationsoplysninger, men nogle gange kan det ske ved en fejl og skal muligvis løses ved at tømme værterne.

Hvad gør Flushing Hosts?

Med en MySQL-bruger med de rette rettigheder udføres en FLUSH sætning, kan MySQL rydde skylletabeller, låse og interne cachesystemer afhængigt af de godkendte options . I tilfælde af FLUSH HOSTS; , vil MySQL tømme værtscachen, hvilket reelt betyder, at MySQL's registrering af, hvilke værter der i øjeblikket er eller for nylig har oprettet forbindelse, nulstilles, hvilket giver mulighed for yderligere forbindelser fra disse værter.

Udførelse af FLUSH HOST direkte

Selvom det kan være, at du er fuldstændig forhindret i at oprette forbindelse til MySQL, er det i nogle tilfælde muligt, at systemet vil "gemme" en forbindelsesplads, som kun er tilgængelig for den primære eller root konto.

Til Amazon RDS , findes dette brugernavn typisk i din administrationskonsol som standard eller "Master". Forsøg at oprette forbindelse til din MySQL-server med dette primære brugernavn.

Hvis du er i stand til at oprette forbindelse, er det lige så enkelt at skylle dine værter som at køre FLUSH HOSTS; MySQL-sætning:

FLUSH HOSTS;

Du skulle nu have ryddet dit host_name blocked fejl og være i stand til at oprette forbindelse til din standard MySQL-konto.

Fjernskylning af værter ved hjælp af MySQLAdmin

I tilfælde af at du ikke er i stand til at oprette forbindelse til MySQL som hovedkontoen og stadig modtager blocked fejl, er den næste mulighed at oprette forbindelse til serveren eksternt og udføre flush kommando ved hjælp af mysqladmin værktøj.

For at gøre dette skal du have forbindelse til en anden EC2-instans eller server, der har adgang til den RDS-server, der producerer fejlen.

Når du er tilsluttet, skal du udføre følgende kommando med de korrekte indstillinger erstattet mellem <> :

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

Hvis det lykkes, flush-hosts kommandoen vil blive udført som forventet, og du vil nu være i stand til at oprette forbindelse til MySQL som normalt.

Genstart af RDS-forekomsten

Den sidste mulighed, hvis alt andet fejler, er blot at logge ind på RDS-styringskontrolpanelet og manuelt genstarte den RDS-instans, der giver fejlen. Dette vil effektivt nulstille hosts cache for dig, selvom det måske ikke er ideelt under produktionsforhold.


  1. MariaDB VERSION() Forklaret

  2. Problemer med SQL Server Transactional Replikation

  3. 7 tips til bedste praksis for PostgreSQL-bulkdataindlæsning

  4. Sådan tilføjes automatisk stigningskolonne i eksisterende tabel i MySQL