11 de agosto de 2013

Cambiar directorio de MySQL y apparmor

En la entrada de misnotaslinux:
Bases de datos MySQL distribuidas en memoria USB
describía una técnica muy sencilla, que había utilizado con éxito para cambiar los directorios de trabajo de las bases de datos de MySQL, pudiendo alojarlos en memorias USB u otras unidades de disco.

Al intentar esto en mi nanoservidor domo, con Xubuntu 13.04: NO ha funcionado.

La razón es que Xubuntu tiene activado apparmor, que es un sistema de seguridad que bloquea el uso irregular de directorios extraños.

Al intentar cambiar el directorio de trabajo de MySQL a otra unidad, direccionándolo mediante un enlace, appArmor no lo permite.

Apparmor esta en SuSe y Ubuntu.

Protocolo:

# cp -a /var/lib/mysql /mnt/otraunidad
# mv /var/lib/mysql /var/lib/mysql.bck
# ln -s /mnt/otraunidad/mysql mysql
# service restart mysql

... esto no funciona a no ser que inactivemos appArmor para mysqld.

Solución 01:
# aptitude install apparmor-utils
# aa-complain /usr/sbin/mysqld
# service apparmor restart
# service mysql restart

.. y ahora funciona mysql usando como directorio de trabajo /mnt/otraunidad/mysql

Con aa-complain hemos cambiado el protocolo de appArmor para mysqld y no lo bloquea sino que solo logea cuando ve algún comportamiento sospechoso como usar una directorio de trabajo diferente.

Solución 02:
Cambiar el perfil apparmor para mysqld:

# nano /etc/apparmor.d/usr.sbin.mysqld

añadimos las siguientes reglas para la nueva localización de la carpeta de MySQL:

  /mnt/otraunidad/mysql/ r,
 /mnt/otraunidad/mysql/** rwk,

# service apparmor restart
# service mysql restart

Esta solución es mas elegante ya que no desactivas las medidas de seguridad de appArmor para MySQL.

Ref:
Cambiar ruta de MySQL con apparmor: http://www.ubuntu-es.org/node/113525#.UgbW6dJ7LzY

No hay comentarios:

Publicar un comentario