Cómo resolver el error de MySQL max_user_connections

Recibo un error de seguimiento cuando bash iniciar sesión en phpMyAdmin.

El usuario * * ya tiene más de conexiones activas ‘max_user_connections’

¿Alguien podría decirme cómo cerrar estas conexiones DB desde el extremo del servidor MySQL?

¡Gracias por tu tiempo!

Aquí creo que puedes resolver tu problema max_connections

Lea también este http://dev.mysql.com/doc/refman/5.5/en/too-many-connections.html

Su mejor apuesta es boost max_connections . Para una instancia de MySQL que sirve varias aplicaciones web diferentes (raw php, WordPress, phpBB), probablemente desee un valor de al menos 60 para esto.

Emita este comando y descubrirá cuántas conexiones globales tiene disponibles:

 show global variables like '%connections%' 

Puede averiguar cuántas conexiones están en uso en un momento dado como este:

 show status like '%connected%' 

Puede averiguar qué hace cada conexión de esta manera:

 show full processlist 

Intentaría obtener un valor global de al menos 100 conexiones si fuera usted. Su proveedor de servicios debería poder ayudarlo si no tiene acceso para hacerlo. Debe hacerse en la configuración del archivo my.cnf para MySQL. No lo configure demasiado alto o se corre el riesgo de que su proceso de servidor MySQL devore toda su memoria RAM.

Un segundo enfoque le permite asignar esas conexiones generales a sus diferentes usuarios de MySQL. Si tiene diferentes nombres de usuario MySQL para cada una de sus aplicaciones web, este enfoque funcionará para usted. Este enfoque está escrito aquí. https://www.percona.com/blog/2014/07/29/prevent-mysql-downtime-set-max_user_connections/

El enfoque final para controlar este problema es más sutil. Probablemente estés utilizando el servidor web Apache como tecnología subyacente. Puede reducir el número de tareas de Apache que se ejecutan al mismo tiempo para, paradójicamente, boost el rendimiento. Eso es porque Apache pone en cola las solicitudes. Si tiene algunas tareas que atraviesan la cola de forma eficiente, a menudo es más rápido que muchas tareas porque hay menos contención. También requiere menos conexiones de MySQL, lo que resolverá su problema inmediato. Esto se explica aquí: reinicie Mysql automáticamente cuando ubuntu en la microinstancia EC2 lo mate cuando se quede sin memoria.

Por cierto, las aplicaciones web como WordPress usan un grupo de conexión persistente. Es decir, establecen conexiones a la base de datos MySQL, las mantienen abiertas y las vuelven a usar. Si sus aplicaciones están ocupadas, la duración de cada conexión debería ser de varios minutos.

Primero, este es un truco, pero funciona, especialmente en un host compartido.
Todos tenemos malos “vecinos” a veces, ¿verdad?

Si tiene acceso a su / etc /, aumente el límite de 30 a 50, en su my.cnf o mediante el esquema de información.

  1. Para ignorar el mensaje de error que el visitante puede ver, use @mysql_connect() .
  2. Si hay más de 30 MUC, use la instrucción ” or die() ” para detener la consulta.
  3. Reemplace el mensaje “o muera” con el die(header(location: THIS PAGE)) y asegúrese de mysql_close() ;

Sí, causará un retraso en la carga de la página. Pero es mejor cargar que una pantalla blanca de la muerte, o peor, mensajes de error que los visitantes no entienden.

Esto sucede debido al límite especificado en la configuración de mysql, la variable del sistema max_user_connections .

Soluciones

Eliminar las consultas que están atrapadas en el backend es solo una solución que sugeriría si es una consulta SELECT. Las consultas que cambian los datos, como ACTUALIZAR / ELIMINAR / INSERTAR, no deben eliminarse.

En segundo lugar, puede usar el comando mysqladmin processlist para verificar qué está pasando dentro de mysql.

Si el locking está causando su problema, puede verificar qué motor está usando y cambiarlo a otro. La documentación de SolidDB de IBM sobre lockings de tablas puede ayudarlo. Aunque puede haber otra razón para esto. (Por ejemplo, tal vez sus consultas tarden demasiado debido a una consulta no optimizada, o el tamaño de la tabla es demasiado grande, o tiene una base de datos con spam).