2011-11-04 85 views

Respuesta

77

no utilizo RDS, pero con MySQL normal, sólo tiene que conectar con el usuario 'root'. Luego, número

FLUSH HOSTS; 

sql query.

Incluso en el caso de demasiadas conexiones, MySQL debe mantener una conexión en reserva para que un superusuario puede conectar (normalmente root)

(mysqladmin en CLI por lo general sólo se conecta como root todos modos, y emite las arriba sql :)

+3

liThanks, esto es exactamente lo que Necesitaba: un pequeño contexto. fwiw mysqladmin también funcionará con RDS (siempre que esté usando un usuario con permiso para hacerlo (es decir, root), yo no). – dsummersl

+0

Esta es una gran respuesta, pero no aplicable a AWS. –

+0

¿Por qué no? ¿No puedes ejecutar FLUSH HOSTS en AWS? – barryhunter

3

En Amazon RDS FLUSH HOSTS; se puede ejecutar desde el usuario predeterminado ("Nombre de usuario principal" en la información RDS), y ayuda.

1

Tendrá que conectar sus RDS a través de un ordenador que como MySQL instalado en él utilicé una de mis VPS utilizando SSH

Después de que estaba conectado en mi VPS (i utilizado masilla) Era simple, en el símbolo que entré en el siguiente comando:

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

me fijo este error en mi ejemplo RDS reiniciando desde la consola de administración de AWS. HTH

[editar: lol downvotes]

26

sesión en cualquier otra instancia de EC2 que tiene que tiene acceso a la instancia de RDS en cuestión y ha Mysqladmin instalado y ejecutado

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

se le pedirá para su contraseña

+1

No debe ser de ninguna instancia de EC2 . Se puede hacer desde una máquina local también. Dondequiera que mysql esté instalado. –

+2

Esto no funciona desde una instancia de beanstalk EC2 a un host mysql RDS. El uso del comando mysqladmin para conectarse al host genera un error: mysqladmin: se conecta al servidor en 'challengefinder-rds.crstas8123.us-west-1.rds.amazonaws.com' error error: 'Host' ip-10-170 -12-12.us-west-1.compute.internal 'está bloqueado debido a muchos errores de conexión; desbloquear con 'mysqladmin flush-hosts' ' –

+0

Puede usar otra computadora: simplemente agregue su dirección IP al grupo de seguridad para esa instancia de RDS y luego puede usar mysqladmin desde su estación de trabajo. – Guss

5

Como los hosts están bloqueados. intente conectarlo desde otro host y ejecute el comando mysqladmin flush-hosts.

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

Puede reiniciar la base de datos en RDS Admin.

11

Cuando una instancia de Amazon RDS está bloqueado porque se ha superado el valor de max_connect_errors, que no puede utilizar el host que generan los errores de conexión para emitir el comando "anfitriones ras", ya que el servidor MySQL se ejecuta en la instancia se en ese punto bloqueando las conexiones de ese host.

Por lo tanto, debe emitir el comando "flush hosts" desde otra instancia EC2 o servidor remoto que tiene acceso a esa instancia RDS.

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

Si esto implicó el lanzamiento de una nueva instancia, o la creación/modificación de grupos de seguridad para permitir el acceso desde el exterior, puede ser más rápido que basta con acceder a la interfaz de usuario de RDS y reiniciar la instancia de RDS que está bloqueada.

+0

Reiniciar la instancia fue lo más fácil para mí. –

0

Puede eliminar hosts local MySQL usando los siguientes comandos:

mysqladmin -u [username] -p flush-hosts 
**** [MySQL password] 

o

mysqladmin flush-hosts -u [username] -p 
**** [MySQL password] 

Aunque el servidor de base de datos de Amazon RDS está en la red a continuación, utilizar el siguiente comando como al igual que la red lo más al ras del servidor MySQL:

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

En la sugerencia adicional usted puede resolver de forma permanente el problema de error bloqueado de muchas conexiones al editar el archivo my.ini [archivo de configuración de Mysql]

variables de cambio max_connections = 10000;

o

de inicio de sesión en MySQL línea con el comando -

mysql -u [username] -p 
**** [MySQL password] 

poner el siguiente comando en la ventana de MySQL

SET GLOBAL max_connect_errors=10000; 
set global max_connections = 200; 

cheque verdadera usando mandamientos

show variables like "max_connections"; 
show variables like "max_connect_errors"; 
+0

En RDS, no es posible ejecutar ningún comando localmente, porque no puede iniciar sesión en el host de la base de datos. En la red tampoco funciona, porque mysqladmin tampoco puede conectarse, por el mismo motivo. ("error: 'Host' your.client.ip.address 'está bloqueado debido a muchos errores de conexión") –

Cuestiones relacionadas