Hoy vamos hablar del lugar donde se almacenan los datos de MariaDB (Mysql) pues nos puede interesar por varios motivos:
- Tener localizado el directorio en un lugar que podamos tener acceso con permisos para por ejemplo Backup, tengamos en cuenta que normalmente el directorio de datos esta en directorio con datos root que nos interesa que estén lo más lejos posible de otras aplicaciones y usuarios.
- Tener los datos en un disco externo a nuestro servidor de base de datos.
- Tenemos nuestro equipo para desarrollo (ejemplo el mio) y según el desarrollo que tenga que ver tengo discos distintos de forma que no junto datos de uno con otros.
Lo primero es localizar el directorio actual y nada más fácil que entrar en MariaDB con el comando «mysql -u root .p» y desde el ejecutar «select @@datadir;·
Una vez tenemos el directorio, lo que hacemos es copiarlo a nuestra nueva ubicación con un cp recursivo (-r) y que nos guarde la información del modo, propietario y timestamp de todos los fichero (-p)
cp -r -p <directorio origen> <directorio destino>
Una vez tengamos estos datos en el nuevo directorio, asegurar que el usuario con el que arranca MariaDB tiene acceso, pararemos el servidor y cambiaremos la configuración en el fichero my.cnf.
service mariadb stop
Podemos tener varios my.cnf (o otro fichero de configuración) por lo que buscaremos en ellos donde tenemos definida la variable datadir que sera el que tenga la configuración propia del servidor. Recomiendo ver el enlace https://mariadb.com/kb/en/library/configuring-mariadb-with-mycnf/ en el que podremos ver las posibles localizaciones de los ficheros de configuración y el orden jerárquico en el que los lee. También se puede ver las diferentes secciones (a nosotros nos interesa [mysqld] por ser la de servidor tanto MariaDB como mysql) y a quien afecta si a la configuración de servidor o de cliente.
En nuestro caso vimos que la configuración con más prioridad y donde estaba configurado el directorio era el fichero «/etc/mysql/mariadb.conf.d(50-server.cnf» por lo que cambiamos la variable «datadir» a la nueva ubicación.
Y con esto ya esta, basta con volver a levantar el servicio y comprobar que se ha cambiado el directorio.
service mariadb start
Para comprobarlo podemos crear una base de datos nueva «CREATA DATABASE PRUEBA» y confirmar que se crea el directorio de estos archivos en esta localización y no en la antigua, y todavía no nos lo creemos se realizamos un «show databases» podremos comprobar que si cambiamos a la localización antigua no se vera esa base de datos.