Ir al contenido

Cómo importar y exportar bases de datos MySQL por consola en Linux

15 de septiembre de 2026 por
Cómo importar y exportar bases de datos MySQL por consola en Linux
ENDEOS S.L., David - ENDEOS
Exportar e importar una base de datos MySQL desde la consola de Linux es una tarea habitual para crear copias de seguridad, migrar una aplicación entre servidores o restaurar una base de datos.

Las dos herramientas principales son:

  • mysqldump, para exportar la base de datos.
  • mysql, para importar el archivo SQL resultante.

En esta guía veremos los comandos más habituales y algunas opciones útiles para trabajar con servidores locales y remotos.

Requisitos previos

Antes de empezar necesitamos:

  • acceso al servidor Linux;
  • un usuario MySQL con los permisos necesarios;
  • conocer el nombre de la base de datos;
  • y disponer de acceso por terminal, localmente o mediante SSH.

Si el servidor es remoto, podemos conectarnos mediante un cliente SSH como PuTTY o directamente con el comando ssh desde un terminal compatible.

[caption id="attachment_369" align="aligncenter" width="330"]Conexión SSH mediante PuTTY a servidor Linux Conexión SSH a un servidor Linux mediante PuTTY.[/caption] Una vez dentro del servidor podremos ejecutar directamente las operaciones de importación y exportación. [caption id="attachment_372" align="aligncenter" width="665"]Consola Linux para importar y exportar MySQL Terminal Linux conectada al servidor desde la que ejecutaremos los comandos MySQL.[/caption]

Exportar una base de datos MySQL con mysqldump

Para exportar una base de datos completa a un archivo SQL:

mysqldump -u usuario -p nombre_base_datos > backup.sql

Por ejemplo:

mysqldump -u root -p tienda > tienda.sql
Después de ejecutar el comando, MySQL solicitará la contraseña del usuario.

El archivo tienda.sql contendrá las instrucciones SQL necesarias para reconstruir las tablas y sus datos.

mysqldump escribe el resultado en la salida estándar y utilizamos > para guardarlo en un archivo.

Importar una base de datos MySQL desde un archivo SQL

Para restaurar un dump sobre una base de datos existente:

mysql -u usuario -p nombre_base_datos < backup.sql

Por ejemplo:

mysql -u root -p tienda < tienda.sql

Si la base de datos todavía no existe, podemos crearla primero:

mysql -u root -p

Y dentro del cliente MySQL:

CREATE DATABASE tienda;

Después salimos:

exit;

Y realizamos la importación:

mysql -u root -p tienda < tienda.sql

También podemos entrar en MySQL y utilizar:

source /ruta/al/backup.sql;

Tutorial en vídeo: importar y exportar MySQL desde Linux

https://www.youtube.com/watch?v=F92DNU6XwKY

Exportar una base incluyendo CREATE DATABASE

Hay una diferencia importante entre:

mysqldump -u root -p tienda > tienda.sql

y:

mysqldump -u root -p --databases tienda > tienda.sql

Cuando utilizamos --databases, el archivo generado incluye instrucciones para crear y seleccionar la base de datos.

Esto permite posteriormente restaurarlo sin especificar una base de datos de destino:

mysql -u root -p < tienda.sql

Es especialmente práctico en migraciones.

Exportar varias bases de datos

Para exportar varias bases en un único archivo:

mysqldump -u root -p --databases base1 base2 base3 > backup.sql

Para restaurarlas:

mysql -u root -p < backup.sql

Exportar todas las bases de datos MySQL

Para crear un volcado de todas las bases accesibles para el usuario:

mysqldump -u root -p --all-databases > todas-las-bases.sql

La restauración se realiza con:

mysql -u root -p < todas-las-bases.sql

Los permisos del usuario determinarán qué bases e información pueden exportarse.

Exportar una base de datos comprimida con gzip

Para bases grandes podemos comprimir directamente la salida:

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

Para restaurarla sin generar previamente el archivo .sql:

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

También podemos utilizar:

gzip -dc tienda.sql.gz | mysql -u root -p tienda

Esto resulta útil para ahorrar espacio y facilitar la transferencia de dumps de cierto tamaño.

Exportar o importar MySQL desde un servidor remoto

Si MySQL se encuentra en otro servidor, utilizamos -h para indicar el host:

mysqldump -h servidor.example.com -u usuario -p tienda > tienda.sql

Para importar:

mysql -h servidor.example.com -u usuario -p tienda < tienda.sql

Si el servidor utiliza un puerto diferente:

mysql -h servidor.example.com -P 3307 -u usuario -p tienda < tienda.sql

El servidor deberá aceptar conexiones desde el origen y el usuario tendrá que disponer de los permisos necesarios.

Incluir procedimientos, funciones y eventos

Si utilizamos procedimientos almacenados o funciones:

mysqldump -u root -p --routines tienda > tienda.sql

Para incluir también eventos:

Categoría: Desarrollo web