You are on page 1of 3

Cmo hacer copias de seguridad de una base

de datos MySQL
El mtodo ms utilizado para crear copias de seguridad de MySQL se basa en el
uso del comando mysqldump. Este comando se incluye dentro de las utilidades del
propio servidor MySQL, por lo que ya se instal cuando instalaste MySQL. Para
comprobar que dispones de mysqldump, abre una consola de comandos y ejecuta
lo siguiente:
$ mysqldump

# para comprobar la versin instalada


$ mysqldump --version
mysqldump

Ver 10.XX Distrib 5.X.XX

Si se produce un error de tipo "command not found", es posible que no hayas


instalado MySQL correctamente o que tengas que indicar la ruta completa hasta
donde se encuentre el comando, como por ejemplo:
$ /usr/local/mysql/bin/mysqldump

Copia de seguridad bsica


Ejecuta el siguiente comando para realizar una copia de seguridad completa de la
base de datos llamadaNOMBRE_BASE_DE_DATOS. No olvides
reemplazar TU_USUARIO y TU_CONTRASEA por las credenciales que utilizas para
acceder al servidor de base de datos:
$ mysqldump --user=TU_USUARIO --password=TU_CONTRASEA NOMBRE_BASE_DE_DATOS
> copia_seguridad.sql

Si por ejemplo el usuario es root, la contrasea tambin es root y la base de


datos se llama acme, el comando que debes ejecutar es el siguiente:
$ mysqldump --user=root --password=root acme > copia_seguridad.sql

Si por motivos de seguridad no quieres escribir la contrasea como parte del


comando, puedes reemplazar la opcin --password=XX por -p. Al hacerlo, MySQL

te pedir que escribas la contrasea a mano cada vez que realices una copia de
seguridad:
$ mysqldump --user=root -p acme > copia_seguridad.sql
Enter password: *********

Recuperando una copia de seguridad


Las copias de seguridad slo son tiles si se pueden recuperar fcilmente los
datos cuando se produce un error. Suponiendo que los datos a recuperar se
encuentran en el archivo copia_seguridad.sql, el comando que debes ejecutar
para recuperar la informacin de la base de datos es el siguiente:
$ mysql --user=TU_USUARIO --password=TU_CONTRASEA < copia_seguridad.sql

Observa cmo en este caso se ejecuta el comando mysql y no el


comando mysqldump. Utilizando los mismos datos que en el ejemplo anterior, el
comando a ejecutar sera:
$ mysql --user=root --password=root < copia_seguridad.sql

En este comando no hace falta indicar el nombre de la base de datos que se est
recuperando, porque los archivos generados por mysqldump ya contienen esa
informacin. De hecho, al ejecutar este comando de recuperacin se borra la
base de datos original y toda la informacin de sus tablas, para despus
insertar toda la informacin contenida en el archivo copia_seguridad.sql.
Si la copia de seguridad la haces en una versin de MySQL moderna y la
recuperacin de la informacin se realiza en una versin un poco antigua, es
mejor que aadas la opcin --skip-opt al realizar la copia de seguridad, para
desactivar algunas opciones modernas e incompatibles:
$ mysqldump --user=TU_USUARIO --password=TU_CONTRASEA
--skip-opt NOMBRE_BASE_DE_DATOS > copia_seguridad.sql

Copias de seguridad de ms de una base de datos


Normalmente el comando mysqldump se utiliza para realizar la copia de seguridad
de una nica base de datos. No obstante, en ocasiones es necesario copiar varias

bases de datos. Para ello, utiliza la opcin --databases e indica el nombre de todas
las bases de datos separados por un espacio en blanco:
$ mysqldump --user=TU_USUARIO --password=TU_CONTRASEA
--databases NOMBRE_BASE_DE_DATOS_1 NOMBRE_BASE_DE_DATOS_2
NOMBRE_BASE_DE_DATOS_3 > copia_seguridad.sql

Si lo que quieres es realizar una copia de seguridad de todas las bases de datos,
utiliza en su lugar la opcin --all-databases:
$ mysqldump --user=TU_USUARIO --password=TU_CONTRASEA
--all-databases > copia_seguridad.sql

You might also like