Instrucciones probadas en:
- Ubuntu 14.04, 64 bits + MySQL 5.6.19
- Ubuntu 15.10, 64 bits + MySQL 5.6.27
Por defecto la carpeta de datos de MySQL es /var/lib/mysql. Supongamos que queremos usar /home/data:
Crea la carpeta nueva
mkdir /home/data
Cambia los permisos de la carpeta nueva para que pertenezca al usuario y grupo mysql:
chown -R mysql:mysql /home/data/*
Edita el fichero de configuración de mysql /etc/mysql/my.cnf. En Ubuntu 15 el fichero de configuración está en /etc/mysql/mysql.conf.d/mysqld.cnf
nano /etc/mysql/mysql.conf.d/mysqld.cnf
Busca la línea que dice “datadir = /var/lib/mysql” y cambia la ruta antigua por la nueva
datadir = /home/data
En Ubuntu se usa AppArmor para gestionar la seguridad, así que también tenemos que decirle a AppArmor que mysql tiene permisos sobre la nueva carpeta:
nano /etc/apparmor.d/usr.sbin.mysqld
Añade las siguientes líneas al final:
/home/mysql-data r, /home/mysql-data/* rwk,
Reinicia AppArmor
/etc/init.d/apparmor restart
Detén el servidor
/etc/init.d/mysql stop
Copia los ficheros de la carpeta de datos antigua a la nueva. Asegúrate de no copiar los ficheros ib_arch_log_0000000000, ib_logfile0, etc.
cp -rp /var/lib/mysql/* /home/data rm /home/data/ib* rm /home/data/*.cnf rm /home/data/debian*
Reinicia el servidor
/etc/init.d/mysql start
Bualá
y para hacerlo en centos como le hago?
Lo siento Mario, CentOS es una distribución que deriva de RedHat, por lo que los procedimientos son un pelín diferentes. No he usado nunca ni CentOS, ni RedHat, pero no debería variar mucho, a fin de cuentas no deja de ser Linux. Los cambios lógicos serían: en vez de nano, usar el editor de texto que venga por defecto con CentOS, o el que más te guste; saltarse el paso de Apparmor (o buscar cuál es el equivalente en CentOS y asignar los nuevos permisos); y reemplazar la carpeta «/etc/init.d/» por la carpeta en la que estén los daemons en CentOS. Si lo conseguiste y nos quieres contar los pasos, adelante!. Un saludo y suerte.