GNU/Linux >> Tutoriales Linux >  >> Linux

Resolución de error de Mysql:Demasiados archivos abiertos

Introducción:
Cuando actualicé Mysql 5.5 a 5.6, de repente algunos sitios mostraban el siguiente error:
...... Too many open files
El problema tiene que ver con las limitaciones actuales dadas al sistema y al sistema PAM para abrir un máximo de 1024 archivos. Después de investigar un poco, encontré este sitio a continuación, que está en alemán y se explica lo siguiente:
https://www.filewalker.de/ulimit-mysql-open_files_limit/

PASOS:
Verifique los límites de apertura de archivos o ejecute el servidor mysql:
mysql -p -u root
mysql> SHOW VARIABLES LIKE 'open%';

La muy posible salida:
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| open_files_limit | 1024 |
+------------------+-------+
1 row in set (0.00 sec)

Eso significa que el servidor Mysql puede abrir un máximo de 1024, lo que parece muy poco para Mysql 5.6.

Aumentando este límite
Edite el archivo /etc/security/limits.conf y agregue las siguientes líneas:
mysql hard nofile 65535
mysql soft nofile 65535

Esto elevará el límite de archivos abiertos a 65535 para el usuario mysql únicamente.
Si desea aumentar este límite para todos los usuarios, reemplace la palabra mysql para *
p. ej.
* hard nofile 65535
* soft nofile 65535

Y según este sitio edite el archivo /etc/pam.d/common-session y agregue esta línea al final:
session required pam_limits.so
Nota: Sin embargo, no estoy seguro de que este paso sea realmente necesario. Algunas personas lo intentaron sin él y también funcionó. Para mí, en Debian Wheezy, tenía que hacer esto, de lo contrario, seguía recibiendo el error.

Para los sistemas que ejecutan systemd en lugar de InitV, haga lo siguiente:
Edite el archivo /usr/lib/systemd/system/mysqld.service
Agregue estas 2 líneas al final:
LimitNOFILE=65535
LimitNPROC=65535

Reinicie el servidor Mysql y vuelva a probarlo
service mysql restart
mysql -p -u root
mysql>> SHOW VARIABLES LIKE 'open%';

El resultado esperanzador:
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| open_files_limit | 65535 |
+------------------+-------+
1 row in set (0.00 sec)

Este error no debería aparecer más.


Linux
  1. Error fatal:no se pueden abrir y bloquear tablas de privilegios:la tabla 'mysql.host' no existe

  2. ¿Por qué git falla al empujar/buscar con demasiados archivos abiertos?

  3. Conteo de archivos abiertos por proceso

  4. bash:/bin/tar:lista de argumentos demasiado larga al comprimir muchos archivos con tar

  5. ¿Cómo configurar archivos abiertos nginx max?

Cómo aumentar el número de límites de archivos abiertos en Linux

Importar múltiples archivos SQL en MySQL

Error de OpenCA:longitud de clave simétrica demasiado corta [Solución]

Error al usar GRANT con IDENTIFICADO por contraseña en MySQL

Solución de problemas:demasiados redireccionamientos

s3cmd falla demasiadas veces