Error ‘not found’ en la carga de un fichero con init-file de MySQL

3 Jul

De vez en cuando recurro a este mecanismo de MySQL para cambiar la contraseña del administrador.

En las distribuciones que tengan activo apparmor es muy probable que no funcione (dependerá, como vamos a ver, de la configuración apparmor) dando el error (que encontraremos en /var/log/mysql/error.log):

[ERROR] /usr/sbin/mysqld: File '/path_al_fichero/nuevopasswd.sql' not found (Errcode: 13)

(obviamente, estoy suponiendo que el fichero existe y tenemos permisos de lectura 😉 )

El error, como ya podéis imaginar, está provocado por apparmor y, para conseguir nuestro objetivo (ejecutar el fichero para cambiar la contraseña) debemos habilitar la ejecución del guión. Para ello:

  • En el fichero /etc/apparmor.d/usr.sbin.mysqld añadimos la orden ‘/path_al_fichero/*.sql r, ‘ dentro de las opciones de MySQLCaptura de pantalla de 2015-07-03 16:44:08
  • Reiniciamos apparmor: /etc/init.d/apparmor reload
  • Reiniciamos MySQL: /etc/init.d/mysql restart

¡Espero que os sea útil!

PD: La imagen no representa el fichero /etc/apparmor.d/usr.sbin.mysqld completo; donde están los ‘……’  hay otras opciones necesarias para que convivan apparmor y MySQL.