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

'max_user_connections' establecido en 200 - sigue recibiendo error

En cuanto a su problema de "conexiones máximas", podría ser una de estas tres cosas:

1) El servidor ya tiene demasiadas conexiones abiertas. Un servidor MySQL solo puede manejar un número específico de conexiones abiertas antes de negarse a permitir más, y este límite se comparte entre todos los usuarios del servidor. Por lo general, se establece bastante alto, aunque es fácilmente posible que alguien haga DoS de manera efectiva a un servidor MySQL al hacer muchas conexiones (pero vea a continuación)

2) Su cuenta de usuario tiene un número limitado de conexiones permitidas por hora; cualquier conexión adicional dentro de esa hora será rechazada. Esto se establece por usuario.

3) Su cuenta de usuario tiene un número limitado de conexiones abiertas permitidas; cualquier conexión adicional será rechazada. Esto se establece por usuario.

Siempre es importante leer el mensaje de error que recibe en el intento de conexión, ya que en la mayoría de los casos esto indicará el motivo exacto de la falla.

Si su cuenta tiene un límite máximo de conexiones (escenario #3), el error sería:Código:

ERROR 1226 (42000): User 'mysqldba' has exceeded the 'max_user_connections' resource (current value: 1) 

Donde 'mysqldba' sería su nombre de usuario y el 'valor actual' es el número máximo de conexiones abiertas permitidas de este usuario.

Si su cuenta tiene un límite máximo de conexiones por hora (escenario n.º 2), el error sería:Código:

ERROR 1226 (42000): User 'mysqldba' has exceeded the 'max_connections_per_hour' resource (current value: 1) 

Donde, una vez más, 'mysqldba' sería su nombre de usuario y el 'valor actual' es el número máximo de conexiones por hora permitidas para este usuario.

Si recibió el mensaje de error (código 1040) que indica que todo el servidor MySQL se quedó sin ranuras de conexión, este es el escenario DoS que mencioné anteriormente.

¿Qué puedes hacer al respecto? Por lo que ha dicho, no tiene privilegios de superusuario en este servidor, así que nada, aparte de quejarse al SysAdmin responsable de ese servidor. Podrían aumentar la cantidad máxima de conexiones permitidas, lo que podría resolver el problema a corto plazo, pero si alguien más que usa el servidor está creando una cantidad estúpida de conexiones a la base de datos, las ranuras se llenarían nuevamente. Lo que probablemente deberían hacer es también imponer un límite máximo de conexión abierta por usuario; esto evitaría que los usuarios pesados ​​obstruyan el servidor. En una situación de servidor compartido como la suya, esto tendría más sentido:los 'usuarios avanzados' tendrían/deberían tener su propio servidor, o podrían/deberían pagar para aumentar sus conexiones abiertas máximas.