Supongamos que queremos cambiar el directorio donde mysql guarda las bases de datos de:
/var/lib/mysql a: /ruta/mysql
1.- Detenemos a mysql
sudo /etc/init.d/mysql stop
2.- Copiamos el directorio /var/lib/mysql en /ruta/mysql
sudo cp -R /var/lib/mysql /ruta/mysql
3.- Borramos los archivos ib_logfile
sudo rm /ruta/mysql/ib_logfile*
4.- Cambiamos el propietario de los archivos de /ruta/mysql
sudo chown -R mysql:mysql /ruta/mysql
5.- Editamos el archivo /etc/mysql/my.cnf
sudo gedit /etc/mysql/my.cnf
Cambiamos la linea: datadir = /var/lib/mysql
Por la linea: datadir = /ruta/mysql
6.- Detenemos apparmor:
sudo /etc/init.d/apparmor stop
7.- Editamos el archivo /etc/apparmor.d/usr.sbin.mysqld
sudo gedit /etc/apparmor.d/usr.sbin.mysqld
le agregamos las siguientes lineas al final (antes de la llave })
/ruta/mysql/ r,
/ruta/mysql/** rwk,
8.- Arrancamos apparmor
sudo /etc/init.d/apparmor start
9.- Arrancamos mysql
sudo /etc/init.d/mysql start
Después que chequear que todas las bases de datos están bien podemos borrar el directorio /var/lib/mysql
Esto fue realizado con Ubuntu 8.10 desktop i386.
y para hacerlo en centos 7 como seria?