Cómo Importar Exportar Base de Datos MySQL / MariaDB vía CLI

importar exportar base datos mysql mariadb

Uno de los desafíos y dolores de cabeza más habituales en la administración de servidores es saber cómo importar exportar base de datos mysql cuando estas alcanzan un gran volumen. Aunque herramientas de interfaz gráfica como phpMyAdmin o Adminer son excelentes para tareas cotidianas, suelen fallar de forma crítica cuando intentamos procesar archivos .sql pesados debido a restricciones en los entornos web, tales como límites en el tiempo de ejecución de PHP o topes en el tamaño de subida.

Para evitar estos fallos, la solución definitiva y más rápida para cualquier SysAdmin es realizar el proceso de importar exportar base de datos mysql directamente desde la línea de comandos (CLI) a través de una sesión SSH segura.

¿Estás configurando tu entorno o laboratorio desde cero? Si aún no despliegas el motor de datos o necesitas preparar un nuevo servidor limpio antes de importar exportar base de datos mysql, te invitamos a revisar nuestras guías paso a paso según tu distribución:

Cómo Exportar una Base de Datos con mysqldump

El comando estándar por excelencia para realizar un volcado o backup técnico es mysqldump. Antes de proceder con la terminal, asegúrate de recopilar los siguientes parámetros esenciales del entorno MySQL o MariaDB:

  • El nombre exacto de la base de datos que deseas respaldar.
  • Un usuario con privilegios de lectura mínimos (ej: root o un usuario administrativo local).
  • La contraseña asignada a dicho usuario (el sistema la solicitará de forma oculta al ejecutar la instrucción).

Comando básico para servidores locales:

mysqldump -u [usuario] -p [nombre_bd] > backup.sql
importar exportar base de datos mysql

Si la base de datos se aloja en un servidor remoto:

mysqldump -h [host_remoto_ip] -u [usuario] -p [nombre_bd] > backup.sql

Optimización avanzada: Exportación y compresión en un solo paso

Si tu base de datos supera los cientos de megabytes o gigabytes (un problema clásico en portales WordPress con tablas de logs masivas), almacenar el texto plano de inmediato saturará el almacenamiento local. Puedes canalizar el volcado técnico directamente a través de gzip para comprimirlo en tiempo real y ahorrar hasta un 80% de espacio en disco:

mysqldump -u [usuario] -p [nombre_bd] | gzip -9 > backup.sql.gz

Cómo Importar una Base de Datos en MySQL / MariaDB

Antes de ejecutar el comando de inyección de datos, debes garantizar que la base de datos de destino ya exista en el motor. Si no es así, accede a la shell de MySQL mediante mysql -u root -p y créala con el juego de caracteres recomendado utilizando la sentencia: CREATE DATABASE nombre_bd CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;.

Comando básico de importación:

mysql -u [usuario] -p [nombre_bd] < backup.sql
importar db

Importación directa de un archivo comprimido (.gz):

Si seguiste la buena práctica anterior y transferiste el archivo en formato comprimido para ahorrar ancho de banda, no necesitas extraerlo en el disco antes de leerlo; puedes enviarlo directamente al flujo de entrada de MySQL usando zcat o gunzip:

zcat backup.sql.gz | mysql -u [usuario] -p [nombre_bd]

Preguntas frecuentes al importar exportar base de datos mysql

1. ¿Por qué el proceso de importar exportar base de datos mysql falla con el error "MySQL server has gone away"? Este error ocurre comúnmente cuando el tamaño de un bloque de datos o una fila excede el límite configurado en el servidor para un solo paquete de red durante tareas pesadas. Para solucionarlo, debes editar el archivo de configuración de tu motor (usualmente my.cnf o /etc/mysql/mariadb.conf.d/50-server.cnf) e incrementar el valor de la directiva max_allowed_packet, fijándola por ejemplo en 64M o 128M. Tras realizar el ajuste, reinicia el servicio con sudo systemctl restart mysql.

2. ¿Es seguro interrumpir la terminal si estoy en medio de importar exportar base de datos mysql? Sí, puedes cancelar la operación de forma segura utilizando la combinación de teclas Control + C en tu terminal. Esto abortará la exportación sin alterar en absoluto la integridad ni la consistencia de los datos en producción, ya que mysqldump ejecuta operaciones estrictas de lectura y no altera las tablas existentes. Sin embargo, si interrumpes una importación, la base de datos de destino quedará incompleta.

3. ¿Cómo puedo respaldar absolutamente todas las tablas de mi servidor simultáneamente? Puedes valerte del parámetro global --all-databases. Es una excelente técnica para realizar copias de seguridad y simplificar la tarea de importar exportar base de datos mysql a nivel de infraestructura completa:

mysqldump -u root -p --all-databases | gzip -9 > respaldo_global_servidor.sql.gz

Buenas prácticas para SysAdmins y DevOps en entornos de producción

  • Uso de parámetros de consistencia: Al respaldar bases de datos que utilizan el motor transaccional InnoDB (el estándar de WordPress), incluye siempre el parámetro --single-transaction. Esto permite realizar el volcado sin bloquear las tablas, asegurando que tus usuarios puedan seguir navegando e interactuando en la página web sin sufrir interrupciones o bloqueos de base de datos durante el proceso de copia.
  • Verificación de esquemas de codificación: Asegúrate de que tanto el servidor de origen como el de destino compartan esquemas de caracteres compatibles (preferiblemente utf8mb4). Esto evitará la corrupción de caracteres especiales, tildes, e incluso emojis, garantizando una migración totalmente limpia.

Publicaciones Similares