mysql,  ubuntu

mysqldump – backup y restaurar bd mysql

Las copias de seguridad son imprescindibles en cualquier entorno, cuanto más si hablamos de Bases de Datos.

Las bases de datos son casi organismos vivos donde a diario se realizan cambios y registros nuevos siendo imprescindible mantener un buen sistema de Backups, es aquí donde con mysql entra mysqldump.

Mysqldump permite desde Terminal y con una simple instrucción realizar un backup o restaurar una base de datos.

Pongamos un ejemplo, para hacer un backup de la base de datos botbn ejecuto:

 mysqldump -u botbn -h localhost 'botbn' > botbn-bck.sql -p

Si posteriormente necesito restaurar desde archivo:

 mysqldump -u botbn -h localhost 'botbn' < botbn-bck.sql -p

Los parámetros son intuitivos:

Para el backup:

  • -u <nombre de usuario>
  • -h <nombre de host o IP>
  • entre comillas indicamos el nombre de la BD, en el ejemplo ‘botbn
  • > dirige la salida al archivo destino, por ejemplo «> botbn-bck.sql«
  • -p para introducir contraseña de usuario mysql
    • aquí tenemos dos opciones, dejar únicamente -p, en cuyo caso el sistema pedirá que introduzcamos la contraseña manualmente.
    • O escribir la contraseña directamente tras -p sin espacios. Esta opción es menos segura al dejar la password visible en el histórico de instrucciones. *

Aviso de mysqldump por uso de contraseña en linea de comandos: «mysqldump: [Warning] Using a password on the command line interface can be insecure.«

En el caso del restore los mismos parámetros, cambiando el sentido, dirigiendo los datos del archivo a la bd:

  • < dirige/restaura los datos de archivo a la bd, ejemplo «< botbn-bck.sql«

Para automatizarlo una opción muy cómoda es crear un script python o un cron y que el sistema se encargue de lanzarlo cada cierto tiempo.

Estos archivos al final son texto plano y siempre es buena idea comprimirlos, llegando a ratios de un 70% de compresión. Puedes comprimir con zip:

  • zip <archivo.zip> <archivo.sql>
  • zip botbn-bck.sql.zip botbn-bck.sql

Tienes más info de instalación y uso de zip aquí.

Ejemplo de script que exporta y comprime:

#!/bin/bash
mysqldump -u botbn -pmysqlpwdbotbn -h localhost 'botbn' > botbn-bck.sql 
zip botbn-bck.sql.zip botbn-bck.sql
rm botbn-bck.sql

Guarda el script con el nombre que quieras .sh y da permisos de ejecución con chmod a+x archivo.sh

Cualquier duda en comentarios 😉 Saludos!

Deja un comentario

Tu dirección de correo electrónico no será publicada.