O superusuário tem boas instruções passo a passo sobre como resolver esse problema
Aqui está outro conjunto de instruções sobre como fazer a mesma coisa
http://www.ubuntugeek.com/how-to-change-the-mysql-data-default-directory.html
Aqui é anunciado. Vá para cima e vote no original, se puder, no superusuário.
Depois de alguma confusão geral sobre permissões, percebi que o problema não era que eu não tinha minhas permissões e caminhos corretos, mas que o AppArmor estava impedindo o mysql de ler e gravar no novo local.
Esta é a minha solução:
Primeiro pare o MySQL para que nada de estranho aconteça enquanto você estiver mexendo:
$ sudo stop mysql
Em seguida, mova todos os diretórios do banco de dados para o novo local:
$ sudo mv /var/lib/mysql/<all folders> /new-mysql-dir/
Não mova os arquivos, eles serão gerados pelo mysql, apenas mova as pastas (que são os bancos de dados).
Em seguida, solicite educadamente ao AppArmor que permita ao mysql usar a nova pasta:
$ sudo vim /etc/apparmor.d/usr.sbin.mysqld
adicione linhas:
/new-mysql-dir/ r,
/new-mysql-dir/** rwk,
Então diga ao mysql que o datadir foi movido:
$ sudo vim /etc/mysql/my.cnf
mude a linha:
datadir=/var/lib/mysql
para:
datadir=/my-new-db-dir/
NOTA: Dependendo da configuração do banco de dados, talvez seja necessário alterar innodb-data-home-dir etc.
Em seguida, reinicie o AppArmor para ler as novas configurações:
$ sudo /etc/init.d/apparmor restart
E inicie o MySQL novamente usando o novo datadir:
$ sudo start mysql
Espero que isto ajude!