
Recibo un error de demasiadas conexiones con mi aplicación web:http://dev.mysql.com/doc/refman/5.5/en/too-many-connections.html
Por lo tanto, quiero conectarme a la base de datos para show full processes/g
poder depurar el código. Estoy usando el siguiente comando CLI:
mysql -h domain.eu-west-1.rds.amazonaws.com -P 3306 -u username -p
El nombre de usuario que estoy usando es el nombre de usuario maestro creado cuando lancé la instancia. Tengo entendido que mysql siempre mantiene una conexión libre para permitir que se conecten cuentas con SUPER privilegios; sin embargo, cuando lo hago, aparece la respuesta de demasiados errores.
Al observar la configuración, el nombre de usuario maestro parece tener solo súper privilegios en la base de datos y no en el dominio, ¿es correcto? ¿De qué otra manera puedo iniciar sesión en MySQL para depurar el servidor?
Respuesta1
Es correcto, RDS no permite que ninguna cuenta tenga el SUPER
privilegio. Esta es una limitación desafortunada en RDS.
Sin embargo, parece que su problema podría "solucionarse" (o al menos solucionarse) aumentando max_connect_errors
el grupo de parámetros RDS para su instancia, lo que hará que RDS sea más tolerante con los errores de conexión de su IP.
Tu pregunta me deja pensando si tienes demasiadas conexiones... o demasiados errores.
Si hay errores, puede intentar acceder desde una IP diferente, puede borrar los contadores con FLUSH HOSTS;
.
La configuración log_warnings
= 2 en el grupo de parámetros aumentará la cantidad de registro de errores de conexión (el registro de errores está disponible a través de la consola) y estopodríaayudarle a identificar qué está causando que los recuentos de errores de su host se acumulen en primer lugar.
Los cambios del grupo de parámetros se aplicarán "en caliente" al servidor siempre que sea posible, pero la pantalla Detalles de la instancia, junto al grupo de parámetros, le dará una pista sobre si la aplicación de los cambios está pendiente, requiere un reinicio o está completa (in- sincronización).
Si el problema es solo "demasiadas conexiones", entonces la única solución (si no puede forzar a la aplicación a desconectar algunas conexiones) es reiniciar la instancia, tomar una ranura de conexión y permanecer conectado para tener acceso cuando el problema vuelve.