Solución a: MySQL failing to start with message “Can’t find file: ‘./mysql/plugin.frm’ (errno: 23)”

Hace unos días tuvimos un problema con el servicio de mysql, el cual le costaba reiniciar.

Mysql devolvía el siguiente log:

131224 06:04:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
/usr/libexec/mysqld: Can't find file: './mysql/plugin.frm' (errno: 23)
131224 6:04:53 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
/usr/libexec/mysqld: Can't create/write to file '/tmp/ibqcFQMW' (Errcode: 23)
131224 6:04:53 InnoDB: Error: unable to create temporary file; errno: 23
131224 6:04:53 [ERROR] Plugin 'InnoDB' init function returned error.
131224 6:04:53 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
131224 6:04:53 [ERROR] Can't create IP socket: Too many open files in system
131224 6:04:53 [ERROR] Aborting131224 6:04:53 [Note] /usr/libexec/mysqld: Shutdown complete131224 06:04:53 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

El error parece indicar que no se encuentra el archivo «./mysql/plugin.frm» pero esto no es correcto dado que al final del mensaje del error se registra un:

‘[ERROR] Can’t create IP socket: Too many open files in system‘.

Este error final y causante de la falla indica que el servidor esta con problemas para atender dicha petición:

# perror 23
OS error code 23: Too many open files in system

Para incrementar este valor y así lograr levantar el Mysql debemos hacer:

# vi /etc/sysctl.conf
Buscamos fs.file-max = 65536 y lo incrementamos por ejemplo a 200000
Guardamos la edición del archivo y ejecutamos:
# sysctl -p para aplicar la configuración modificada.
Ahora si podremos reiniciar el servicio de mysql normalmente.

PD: Es recomendable que luego de un reinicio del server completo volvamos el valor de fs.file-max a 65536

Deja tu comentario

15 + 20 =

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.