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 mysqldumpfile.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 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»
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 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.