Mover MYSQL de directorio o disco

Hoy os traigo el manual definitivo o HOW TO para mover vuestra instalación por defecto de MySQL de directorio.

Siempre me pasa igual cada vez que monto una nueva Máquina virtual y quiero cambiar el directorio por defecto de las bases de datos me encuentro con el mismo problema. Hasta que pasados unos días recuerdo que era exactamente lo que tenía que hacer. Aquí tenéis los pasos a seguir:

1 .- Detener el servicio MySQL:
Forma clásica de detener un servicio:
 /etc/init.d/mysql stop

O un camino más elegante:

service mysql stop

2 .- Una vez detenido vamos a copiar todo nuestro directorio anterior al nuevo destino de la siguiente forma:

Localizaremos dónde están nuestras bases de datos abriendo el archivo de configuración my.cnf
nano /etc/mysql/my.cnf (esta es la ruta por defecto en mi instalación basada en Debian)

Aquí buscaremos la siguiente entrada:

datadir=/var/lib/mysql

incluiremos una nueva línea de la justo debajo, comentaremos la línea actual e indicaremos dónde estará el nuevo directorio:

# Ruta antigua de acceso a las BasesdeDatos
#datadir=/var/lib/mysql
# Ruta nueva de acceso a las bases de datos.
datadir=/media/basesdatos/mysql (aquí vosotros indicaréis dónde estarán vuestros datos)

Recordar comentar la líneas con el # en vez de eliminar las líneas.

Guardaremos los cambios y seguiremos con los cambios.

3 .- Copiar los datos al nuevo directorio

rsync -avz /var/lib/mysql /media/basesdedatos/mysql

(Este proceso puede tardar un poco dependiendo del tamaño de vuestras bases de datos.)

4 .- Este es quizás el paso más importante de todo el proceso, ya que en ningún lugar está bien documentado:

Estos pasos los vamos a realizar todos desde la línea de comandos o SHELL. No os preocupéis que para eso es este manual.

– Acceder al directorio:

cd /media/basesdedatos/

– Modificar los permisos y los propietarios de nuestra nueva carpeta:

 ·Primero el propietario y el grupo:

         chown mysql:mysql -R mysql/

 · Segundo los PERMISOS IMPORTANTE !!!

      chmod -R 700 mysql/

5.- Por último vamos a iniciar el servicio

Clásico:

/etc/init.d/mysql start

Gafa pasta:

service mysql start

Ahora sí que si está todo listo y en marcha.

En caso de error durante el inicio del motor ( eso es que no has seguido todos los pasos). Podéis ver los errores en el archivo daemon.log en /var/logs/

Si os encontráis el siguiente error:
Fatal error: Can’t open and lock privilege tables: Table ‘host’ is read only

No habéis aplicado correctamente los permisos en el nuevo directorio.

Este sitio web utiliza cookies para mejorar tu experiencia. Asumiremos que estás de acuerdo con esto, pero puedes optar por no participar si lo deseas. Leer Más