Copia de seguridad mysql en varios ficheros

Posted on

Para hacer la copia de seguridad de todas tus bases de datos sobre mysql ejecuta este script diariamente. Te separa cada base de datos en un unico fichero y es extensible a cuantas base de datos tengas.

#!/bin/bash
# Backup directory location e.g /backups
BACKUPDIR="/pub/backups"
for I in $(mysql -e 'show databases' -s --skip-column-names);
do mysqldump $I | gzip > "$BACKUPDIR/$I.sql.gz";
done

Para restaurar tienes que crear primero la base de datos en cuestión, y darle los permisos:

mysql> create database ejemplar;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON ejemplar.* TO usuario@localhost IDENTIFIED by 'contraseña';
Query OK, 0 rows affected (0.00 sec)

Otra solución es guardar todas las bases de datos y recuperar con este comando

mysql -u root -p --one-database destdbname < alldatabases.sql