Diagnosticar y reparar cuando SELinux está previniendo a mysqld (mysqld_t)

Hoy intentaba borrar una base de datos de un servidor corriendo MySql con SELinux habilitado cuando recibí este error.

mysql> drop database test_everywhere;
ERROR 6 (HY000): Error on delete of './test_everywhere//db.opt' (Errcode: 13)

Al incio pense que era un problema de permisos pero revisando el syslog.  me encontre con un mensaje como:

setroubleshoot: SELinux is preventing mysqld (mysqld_t) "read" to ./test_everywhere//db.opt (public_content_rw_t). For complete SELinux messages. run sealert -l 1762c478-f3a2-4eeb-be09-bd3dc037d945

Era probable que los contextos de seguridad de MySql estaban errados, entonce procedí a restablecerlos:

service mysqld stop
restorecon -v -R /usr/libexec/mysqld
restorecon -v -R /var/run/mysqld
restorecon -v /var/log/mysqld.log
restorecon -v -R /var/lib/mysql
restorecon -v /var/lib/mysql/mysql.sock
restorecon -v -R /etc/my.cnf
service mysqld start

Leave a Reply