Hacer copias de seguridad de bases de datos con mysqldump

última modificación:

Cuando necesitamos hacer una copia de seguridad de una base de datos MySQL (ver Crear y usar una base de datos y tabla MySQL desde una consola), la herramienta más sencilla es mysqldump. A diferencia de copiar directamente los archivos de datos de MySQL, mysqldump genera un archivo de texto con las sentencias SQL necesarias para recrear la base de datos completa, lo que facilita tanto el almacenamiento como la restauración.

Para volcar una base de datos en un archivo:

mysqldump -u root -p nombre_bd > nombre_bd.sql

El archivo resultante contiene las instrucciones CREATE TABLE e INSERT de toda la base de datos. Para restaurarla en otro servidor o después de una pérdida de datos:

mysql -u root -p nombre_bd < nombre_bd.sql

Si queremos comprimir el volcado al vuelo para no dejar un archivo .sql plano de varios megas, podemos combinarlo con gzip:

mysqldump -u root -p nombre_bd | gzip > nombre_bd.sql.gz

Para restaurar un volcado comprimido:

gunzip < nombre_bd.sql.gz | mysql -u root -p nombre_bd

Si queremos incluir varias bases de datos en un solo archivo, usamos --databases:

mysqldump -u root -p --databases nombre_bd1 nombre_bd2 > backup.sql

O todas a la vez con --all-databases:

mysqldump -u root -p --all-databases > backup_completo.sql

El archivo .sql generado puede incluirse sin problema en el backup del sistema. Por ejemplo, podemos combinarlo con rsync para replicar el volcado en un disco externo o en un servidor remoto, y añadir ambos comandos al cron para automatizar el proceso completo.