En este HowTo vamos a ver cómo realizar exportaciones desde Línea de Comandos de Bases de Datos MySQL.
Entre las muchas ventajas de exportar e importar Bases de Datos MySQL desde línea de comandos podemos destacar las siguientes:
- Configuración y automatización de copias de seguridad.
- Facilidad para trabajar con Bases de Datos grandes.
- Rapidez en su ejecución y finalización.
- También destacan por su sencillez de uso.
Exportación de Bases de Datos MySQL
Para realizar exportaciones vamos a usar el cliente mysqldump
de MySQL, que nos permite realizar Backups a través de línea de comandos. Con mysqldump
exportamos toda la estructura y sus datos en formato SQL, lo que nos va a permitir posteriormente realizar una importación a cualquier servidor con soporte SQL.
Aunque mysqldump también genera exportaciones en formato CSV y XML, en este HowTo tan sólo nos vamos a centrar en el formato SQL.
Comprobaciones Iniciales
Antes de empezar debemos comprobar que el usuario con el que vamos a realizar las exportaciones dispone de los siguientes privilegios:
- SELECT que nos va a permite realizar consultas a la Base de Datos.
- SHOW VIEW que nos permite ejecutar la sentencia SHOW CREATE VIEW.
- TRIGGER que nos permite crear, eliminar y ejecutar sentencias a las tablas.
- LOCK TABLES que nos permite bloquear tablas y para la cual debemos tener el privilegio SELECT.
Exportaciones con mysqldump
Una vez comprobados nuestros privilegios de usuario podemos empezar con nuestra primera exportación. En esta exportación primeramente indicamos una serie de opciones donde indicamos nuestro nombre de usuario, la base de datos que queremos exportar y la salida donde guardaremos la exportación.
1 |
$ mysqldump -u usuario -p base_de_datos > /directorio/fichero.sql |
Si necesitamos exportar todas las bases de datos reemplazamos el nombre de la base de datos por la opción –all-databases, por lo que el comando será el siguiente:
1 |
$ mysqldump -u usuario -p --all-databases > /home/user/fichero.sql |
Exportaciones de Tablas
Otra de las muchas opciones que podemos utlizar es exportar ciertas tablas a nuestra elección.
1 |
$ mysqldump -u usuario -p base_de_datos [tabla1 tabla2] > /directorio/fichero.sql |
Compresión de Exportación
Para optimizar la exportación podemos comprimir nuestra exportación que nos permite disminuir drásticamente el peso del fichero. En este caso voy a usar la utlidad gzip
.
1 |
$ mysqldump -u usuario -p base_de_datos | gzip -9 > /directorio/fichero.sql.gz |
Importación de Bases de Datos
Ya hemos visto como realizar exportaciones de Bases de Datos por lo que ahora vamos a realizar este mismo proceso pero a la inversa. Para importar una Base de Datos usamos la misma utilidad mysqldump y tan sólo varia el caracter < que indica que realizamos dicha operación a la inversa.
1 |
# mysql -u usuario -p database < /directorio/fichero.sql |