Super usuario tiene unas buenas instrucciones paso a paso sobre cómo resolver este problema
Aquí hay otro conjunto de instrucciones para hacer lo mismo
http://www.ubuntugeek.com/how-to-change-the-mysql-data-default-directory.html
Aquí se vuelve a publicar. Sube y vota el original si puedes en superusuario.
Después de cierta confusión general sobre los permisos, me di cuenta de que el problema no era que no tenía mis permisos y rutas correctas, sino que AppArmor impedía que mysql leyera y escribiera en la nueva ubicación.
Esta es mi solución:
Primero detenga MySQL para que no ocurra nada extraño mientras está jugando:
$ sudo stop mysql
Luego mueva todos los directorios de la base de datos a su nuevo hogar:
$ sudo mv /var/lib/mysql/<all folders> /new-mysql-dir/
No mueva los archivos, serán generados por mysql, solo mueva las carpetas (que son las bases de datos).
Luego, solicite cortésmente a AppArmor que permita que mysql use la nueva carpeta:
$ sudo vim /etc/apparmor.d/usr.sbin.mysqld
agregar líneas:
/new-mysql-dir/ r,
/new-mysql-dir/** rwk,
Luego dígale a mysql que el datadir se ha movido:
$ sudo vim /etc/mysql/my.cnf
cambiar la linea:
datadir=/var/lib/mysql
a:
datadir=/my-new-db-dir/
NOTA: Dependiendo de la configuración de su base de datos, es posible que también necesite cambiar innodb-data-home-dir, etc.
Luego reinicie AppArmor para leer la nueva configuración:
$ sudo /etc/init.d/apparmor restart
Y vuelva a iniciar MySQL con el nuevo datadir:
$ sudo start mysql
¡Espero que esto ayude!