Mover los archivos de las bases de datos de MySQL a otra ruta en Ubuntu
Esto es especialmente útil cuando queremos que estos archivos queden en otra ubicación, como otro directorio, otra partición, otro disco duro, quizá un disco extraíble o una unidad en red.
Los pasos:
1) Creamos la nueva ubicación para los archivos y le damos los permisos al usuario mysql
$ sudo mkdir /nueva/ubicacion/bases/mysql
$ sudo chown mysql:mysql /nueva/ubicacion/bases/mysql
2) Nos deplazamos a la ubicación actual de los archivos de las bases de datos
$ cd /var/lib/mysql
3) Detenemos el motor de bases de datos
$ sudo /etc/init.d/mysql stop
4) Copiamos la carpeta de cada base de datos a la nueva ubicación preservando sus permisos
$ cp -rp mysql /nueva/ubicacion/bases/mysql/
5) Editamos el archivo my.cnf (/etc/mysql/my.cnf)
$ sudo -b gedit /etc/mysql/my.cnf
o
$ sudo nano /etc/mysql/my.cnf
y modificamos la línea
datadir = /var/lib/mysql
con la nueva ubicación
datadir = /nueva/ubicacion/bases/mysql
6) Renombramos o reubicamos las viejas bases de datos.
7) Reiniciamos el servidor MySQL
$ sudo /etc/init.d/mysql start
Si todo ha salido bien, nuestro servidor de MySQL está corriendo nuevamente con las mismas bases de datos que ya teníamos.
Fuente:

Comment from 天龙
Time 2009.10.13 at 20:03
En mi caso tuve que hacer algo adicional. En algunas versiones de Ubuntu MySQL falla al cargar nuevamente las bases de datos.
En mi caso, un Ubuntu 8.04, falla por culpa del AppArmor.
¿Solución?
Editar el archivo /etc/apparmor.d/usr.sbin.mysqld
agregando los siguientes renglones para la nueva ubicación:
/nueva/ubicacion/bases/mysql/ r,
/nueva/ubicacion/bases/mysql/** rwk,
Y reiniciar el AppArmor
$ sudo /etc/init.d/apparmor restart