sql >> Base de Datos >  >> RDS >> Mysql

Cómo ejecutar mysqladmin flush-hosts en Amazon RDS

En algunos casos, mientras se ejecuta MySQL en Amazon RDS (o en otro lugar), puede ser necesario FLUSH todo host registros de MySQL. Por lo general, esto es necesario cuando aparece el error "Host 'host_name' is blocked" ocurre, lo que evitará conexiones adicionales desde ese host_name en particular .

El host_name blocked el error ocurre cuando el número de max_connect_errors especificado en la configuración de MySQL se excede, lo que significa que un host en particular intentó conectarse demasiadas veces sin éxito. Esta es una medida de seguridad implementada por MySQL para evitar ataques injustificados de hosts/usuarios que no tienen las credenciales adecuadas, pero a veces puede ocurrir por error y es posible que deba resolverse vaciando los hosts.

¿Qué hace el lavado de hosts?

Con un usuario de MySQL con los privilegios adecuados ejecuta un FLUSH declaración, MySQL puede borrar tablas de descarga, bloqueos y sistemas de caché internos dependiendo de las options pasadas . En el caso de FLUSH HOSTS; , MySQL vaciará la memoria caché del host, lo que significa que el registro de MySQL de qué hosts están conectados actualmente o se han conectado recientemente se restablece, lo que permite más conexiones desde dichos hosts.

Ejecutando FLUSH HOST Directamente

Si bien es posible que no pueda conectarse a MySQL por completo, en algunos casos es posible que el sistema "salve" una ranura de conexión que solo está disponible para el principal o root cuenta.

Para Amazon RDS , este nombre de usuario generalmente se encuentra en su consola de administración como predeterminado o "Maestro". Intente conectarse a su servidor MySQL con este nombre de usuario principal.

Si puede conectarse, vaciar sus hosts es tan simple como ejecutar FLUSH HOSTS; Declaración de MySQL:

FLUSH HOSTS;

Ahora debería haber borrado su host_name blocked error y podrá conectarse con su cuenta MySQL estándar.

Lavado de hosts de forma remota mediante MySQLAdmin

En el caso de que no pueda conectarse a MySQL como cuenta maestra y aún reciba blocked errores, la siguiente opción es conectarse al servidor de forma remota y ejecutar el flush comando usando mysqladmin herramienta.

Para hacer esto, deberá estar conectado a otro Instancia EC2 o servidor que tiene acceso al servidor RDS produciendo el error.

Una vez conectado, ejecute el siguiente comando con las opciones adecuadas sustituidas entre <> :

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

Si tiene éxito, flush-hosts El comando se ejecutará como se esperaba y ahora podrá conectarse a MySQL normalmente.

Reinicio de la instancia RDS

La opción final, si todo lo demás falla, es simplemente iniciar sesión en el panel de control de administración de RDS y reiniciar manualmente la instancia de RDS que está generando el error. Esto restablecerá efectivamente el hosts cache para usted, aunque puede que no sea ideal en circunstancias de producción.