Cambiar el directorio donde están los archivos de bases de datos en MySQL – Ubuntu

db¡Hola a todos!

En una ocasión tuve la necesidad de cambiar el directorio por defecto en donde se guardan los archivos de base de datos en MySQL, el cual está en /var/lib/mysql . Es bien puntual, pero es muy útil conocer éste dato. Para hacerlo, primero debemos bajar el servicio MySQL, copiaremos los archivos de BD a la nueva ubicación y luego le diremos al archivo de configuración de MySQL que cambiaremos la ubicación. A continuación las líneas de comando:

sudo service mysql stop

Copiamos los archivos de las bases de datos a la nueva ubicación:

sudo cp -R -p /var/lib/mysql /nueva/ubicacion/

El -p  es importante porque debemos de llevarnos íntegramente la configuración de seguridad, propiedad, etc.

Ahora entramos al archivo de configuración de MySQL.

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Buscamos dentro del archivo mysqld.cnf el parámetro datadir y lo cambiamos por la nueva ruta… así:

# datadir = /var/lib/mysql
datadir = /nueva/ubicacion/mysql

En el caso de arriba, lo que se hizo es poner “comentariado” el parámetro datadir (por si queremos volver a como estábamos…) y agregar una línea abajo con la nueva ubicación. Bien, ahora guardamos el archivo.

Por cierto, en nano podemos buscar palabras mediante la combinación de teclas CTRL+W y podemos cerrar/guardar el archivo con CTRL+X ; si no lo hemos guardado previamente (con CTRL+O), nos preguntará si queremos guardarlo en otra ubicación o con el mismo nombre y nos pregunta si queremos sobreescribirlo…

Ahora, aquí viene el secreto… debemos cambiar el perfil de seguridad de MySQL mediante AppArmor, modificando la nueva ruta.

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

Buscamos los directorios /var/lib/mysql/ y solo hacemos la modificación de la ruta, respetando lo demás; yo generalmente lo pongo como comentario a las líneas originales y agrego las líneas que sean necesarias… quedaría algo así:

# Allow data dir access
#  /var/lib/mysql/ r,
#  /var/lib/mysql/** rwk,
  /nueva/ubicacion/mysql/ r,
  /nueva/ubicacion/mysql/** rwk,

Ahora recargamos la configuración mediante el servicio AppArmor y luego reiniciamos el servicio MySQL.

sudo service apparmor reload
sudo service mysql start

Ok, ya con esto todo debería de estar funcionando bien… se puede hacer la prueba de loguearse, entrar a la BD, etc. (mysql -u root -p )

Bien, eso es todo. ¡Saludos!

Comentarios por Facebook

comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*