Hacer un dump con MySQL

Esta sección describe cómo usar mysqldump para crear archivos de respaldo en formato SQL. Para obtener información sobre la recarga de dichos archivos de volcado, consulte la Sección 7.4.2, “Recarga de copias de seguridad en formato SQL” .

De forma predeterminada, mysqldump escribe información como sentencias SQL en la salida estándar. Puede guardar la salida en un archivo:

$> mysqldump [arguments] > file_name

Para respaldar todas las bases de datos, invoque mysqldump con la opción --all-databases:

$> mysqldump --all-databases > dump.sql

Para respaldar solo bases de datos específicas, asígneles un nombre en la línea de comando y use la opción --databases:

$> mysqldump --databases db1 db2 db3 > dump.sql

La --databases opción hace que todos los nombres de la línea de comandos se traten como nombres de bases de datos. Sin esta opción, mysqldump trata el primer nombre como un nombre de base de datos y los siguientes como nombres de tabla.

Con --all-databases o --databases, mysqldump escribe instrucciones CREATE DATABASE y USE antes de la salida del respaldo para cada base de datos. Esto asegura que cuando se vuelve a cargar el archivo de respaldo, crea cada base de datos si no existe y la convierte en la base de datos predeterminada para que los contenidos de la base de datos se carguen en la misma base de datos de la que provienen. Si desea que el archivo de respaldo fuerce una eliminación de cada base de datos antes de volver a crearla, utilice --add-drop-database. En este caso, mysqldump escribe una declaración DROP DATABASE que precede a cada CREATE DATABASE declaración.

Para respaldar una sola base de datos, asígnele un nombre en la línea de comando:

$> mysqldump --databases test > dump.sql

En el caso de una sola base de datos, está permitido omitir la opción --databases:

$> mysqldump test > dump.sql

La diferencia entre los dos comandos anteriores es que sin --databases, la salida del dump no contiene declaraciones CREATE DATABASEo USE . Esto tiene varias implicaciones:

  • Cuando vuelve a cargar el archivo dump, debe especificar un nombre de base de datos predeterminado para que el servidor sepa qué base de datos recargar.

  • Para recargar, puede especificar un nombre de base de datos diferente del nombre original, lo que le permite recargar los datos en una base de datos diferente.

  • Si la base de datos a recargar no existe, primero debe crearla.

  • Debido a que la salida no contiene ninguna declaración CREATE DATABASE, la opción --add-drop-database no tiene efecto. Si lo usa, no produce ninguna declaración DROP DATABASE.

Para respaldar solo tablas específicas de una base de datos, asígneles un nombre en la línea de comando siguiendo el nombre de la base de datos:

$> mysqldump test t1 t3 t7 > dump.sql

Enlaces de referencia

Last updated