Crear y restaurar backups MySQL con Mysqldump

Crear y restaurar backups MySQL con Mysqldump.

Los backups creados con la herramienta mysqldump en consola, son básicamente un conjunto de sentencias «SQL» que se usan para recrear la base de datos original.

Es obligatorio que realices periódicamente backups de tus bases de datos, ten en cuenta que un error de software o un fallo en el disco duro podría ser desastroso. Para ayudarte a realizar backups lo más cómodo y efectivo es usar la herramienta «mysqldump«, que ademas de crear, también permite restaurar o transferir  la base de datos a otro servidor MySQL / MariaDB.

Antes de comenzar con el articulo propiamente dicho, quiero que conozcas la sintaxis de «mysqldump«, es muy simple, básicamente es lo siguiente:

mysqldump [options] > file.sql
  • options– Opciones de mysqldump
  • file.sql – Archivo backup (copia de seguridad)

Vista la sintaxis, vamos a ver como operar con «mysqldump» (en este articulo puedes ver las opciones más comunes).

En todos los ejemplos que veremos, vamos a usar como nombre de la base de datos «database_name», recuerda que debes cambiarlo por el real.

Crear y restaurar backups MySQL con Mysqldump 1

 

Crear backups MySQL con mysqldump

Para crear un backup de una base de datos, y habiendo accedido a la consola como root.

mysqldump database_name > database_name.sql

Si accediste con otro usuario no root.
mysqldump -u root -p database_name > database_name.sql

Te solicitara la contraseña de root, la introduces y pulsas la tecla «Enter«.

 

Crear un backup de varias bases de datos.

mysqldump -u root -p --database database_name_1 database_name_2 > databases_1_2.sql

Crear un backup de todas las bases de datos (opción recomendada).
mysqldump -u root -p --all-databases > all_databases.sql

Mysqldump no permite crear un backup de todas las bases de datos, pero en archivos separados. Si estas interesado en este efecto puedes crear un *.sh con bash.
for DB in $(mysql -e 'show databases' -s --skip-column-names); do
    mysqldump $DB > "$DB.sql";
done

Crear un backup pero esta vez la comprimimos con «gzip«.
mysqldump database_name > | gzip > database_name.sql.gz

mysqldump -u root -p --all-databases > | gzip > all_databases.sql

Si vas a guardar tus backups en una misma carpeta, para que no te confundas lo ideal es añadir la fecha en el propio nombre del backup.
mysqldump  database_name > database_name-$(date +%Y%m%d).sql

Con el método anterior se generan archivos del tipo: «database_name-20180621.sql»

Crear y restaurar backups MySQL con Mysqldump 2

 

Restaurar backups MySQL

La opción más común es restaurar todas las bases de datos.

mysql --one-database database_name < all_databases.sql

También resulta útil crear una base de datos e importar un backup.
mysql -u root -p -e "create database database_name";

mysql -u root -p database_name < database_name.sql

Crear y restaurar backups MySQL con Mysqldump 3

 

Crear y restaurar backups MySQL remotamente

Esta opción es muy interesante, lo que hacemos es crear un backup y automáticamente restaurarlo en una base de datos (creada previamente) localizada en otro servidor o host.

mysqldump -u root -p database_name | mysql -h remote_host -u root -p remote_database_name

Donde «remote_host«, debes poner la ip o el hostname del servidor remoto.

 

Espero te resulte de utilidad este articulo.

Agregar comentario