5.3.2. mysqldump

Las dos opciones anteriores representan copias binarias de la base de datos. El comando mysqldump, en cambio, realiza un volcado de las bases de datos pero traduciéndolas a SQL; es decir, entrega un archivo de texto con todos los comandos necesarios para volver a reconstruir las bases de datos, sus tablas y sus datos. Es el método más útil para copiar o distribuir una base de datos que deberá almacenarse en otros servidores.

$ mysqldump demo > demo.sql

El comando mysqldump ofrece multitud de parámetros para modificar su comportamiento  o  el  tipo  de  volcado  generado:  por  defecto,  genera  sentencias SQL, pero puede generar ficheros de datos tipo CSV u otros formatos. También podemos especificarle que haga el volcado de todas las bases de datos o que sólo vuelque los datos y no la creación de las tablas, etc.

Las primeras líneas del archivo demo.sql según el ejemplo anterior tendrían el siguiente aspecto:

~$ mysqldump demo | head -25
-- MySQL dump 8.21
--
-- Host: localhost Database: demo
---------------------------------------------------------
-- Server version 3.23.49-log
--
-- Table structure for table ´ganancia´
--
DROP TABLE IF EXISTS ganancia;
CREATE TABLE ganancia (
venta enum(´Por mayor´,´Por menor´) default NULL,
factor decimal(4,2) default NULL
) TYPE=MyISAM;
--
Dumping data for table ´ganancia´
--
INSERT INTO ganancia VALUES (´Por mayor´,1.05);
INSERT INTO ganancia VALUES (´Por menor´,1.12);--

La ventaja de utilizar mysqldump es que permite que los archivos puedan ser leídos (y modificados) en un simple editor de textos, y pueden ser utilizados para migrar la información a otro SGBD que soporte SQL. Además soporta todos los tipos de tablas. La desventaja es que su procesamiento es lento y los archivos que se obtienen son muy grandes.