¡error! ! ! Demasiadas conexiones (demasiadas conexiones, lo que provoca que no se pueda conectar a la base de datos y no se pueda realizar el negocio con normalidad)

Demasiadas conexiones (demasiadas conexiones, lo que resulta en una falla al conectarse a la base de datos, el negocio no puede ser normal

1. Recuperación de problemas

mysql> show variables like '%max_connection%'; 
| Variable_name   | Value | 
max_connections | 151   |  
mysql> set global max_connections=1;Query OK, 0 rows affected (0.00 sec) 
[root@node4 ~]# mysql -uzs -p123456 -h 192.168.56.132 
ERROR 1040 (00000): Too many connections 

Dos, ideas de solución

  • 1. Primero, considere si el valor del parámetro max_connections correspondiente en nuestro archivo de parámetros de la base de datos MySQL es demasiado pequeño, lo que hace que el número de conexiones de cliente exceda el valor máximo que la base de datos puede soportar.
    El tamaño predeterminado de este valor es 151, podemos ajustarlo de acuerdo con la situación real.

Tres, la solucion

  • establecer max_connections globales = 500

  • 1. Pero este ajuste tendrá peligros ocultos, porque no podemos confirmar si la base de datos puede soportar una presión de conexión tan grande. Es como que una persona solo puede comer un panecillo al vapor, pero ahora tiene que comer 10, y definitivamente no lo aceptes. Cuando se refleja en el servidor, puede haber tiempo de inactividad.

  • 2. En segundo lugar, puede limitar el número de procesamiento simultáneo de Innodb. Si innodb_thread_concurrency = 0 (este tipo de representación no está limitado), primero puede cambiarlo a 16 o 64 dependiendo de la presión del servidor.

  • 3. Si es muy grande, puede cambiarlo a un valor más bajo para permitir que baje la presión en el servidor y luego aumentarlo lentamente. Según su propio negocio, le sugiero que lo ajuste a 16 primero.

  • 4. El rendimiento de MySQL disminuirá con el aumento en el número de conexiones Antes de MySQL 5.7, es necesario permitir que los desarrolladores configuren el grupo de subprocesos y reutilicen las conexiones. Después de MySQL 5.7, la base de datos tiene su propio grupo de subprocesos y el problema del número de conexión se ha resuelto en consecuencia.

对于有的监控程序会读取 information_schema 下面的表,可以考虑关闭下面的参数:
innodb_stats_on_metadata=0
set global innodb_stats_on_metadata=0

Supongo que te gusta

Origin blog.csdn.net/weixin_45647891/article/details/114236362
Recomendado
Clasificación