🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo hacer una copia de seguridad (backup) de una base de datos MySQL desde la terminal

Actualizado el 4 de junio de 2026

¿Por qué necesitas hacer un backup de tu base de datos MySQL?

Si tienes una web, una tienda online o cualquier aplicación que use MySQL, tu base de datos es el corazón de todo. Contiene tus usuarios, tus productos, tus artículos, tus pedidos... vamos, toda la información que hace que tu proyecto funcione.

Perder esa información puede ser un desastre absoluto. Un error humano, un ataque, un fallo del servidor o una actualización que sale mal pueden dejarte sin datos en cuestión de segundos. Por eso, hacer una copia de seguridad base datos no es una opción, es una necesidad.

En esta guía te voy a enseñar, paso a paso y sin tecnicismos innecesarios, cómo hacer un backup mysql terminal usando la herramienta más fiable que existe: mysqldump. No necesitas ser un experto, solo seguir las instrucciones y, sobre todo, practicar un poco.

Al final del artículo también te mostraré cómo automatizar este proceso con una tarea programada (mysql backup cron) para que nunca más tengas que preocuparte por ello.

¿Qué es mysqldump y por qué es la mejor opción?

mysqldump es una herramienta que viene incluida con MySQL y que sirve exactamente para lo que necesitas: generar una copia de seguridad de tu base de datos. Lo que hace es crear un archivo de texto con todas las instrucciones SQL necesarias para reconstruir tu base de datos desde cero.

Ese archivo se llama "dump" y contiene las tablas, los datos, las configuraciones y, si quieres, hasta los usuarios y permisos. Es como hacer una fotografía exacta de tu base de datos en un momento concreto.

La gran ventaja de mysqldump es que es compatible con casi cualquier versión de MySQL y funciona en todos los sistemas operativos. Además, es la herramienta estándar que usan los profesionales, así que encontrarás mucha documentación y soporte si algo sale mal.

Requisitos previos antes de empezar

Antes de lanzarte a hacer tu primera copia de seguridad, asegúrate de tener lo siguiente:

  1. Acceso a la terminal de tu servidor o de tu ordenador. Si usas un hosting compartido, normalmente tienes acceso a una terminal a través de SSH. Si tienes un VPS o un servidor dedicado, ya sabes lo que es.

  2. Credenciales de acceso a MySQL. Necesitas un usuario y una contraseña que tengan permisos para leer la base de datos que quieres respaldar. Normalmente, el usuario root tiene todos los permisos, pero si usas un usuario específico, asegúrate de que tenga privilegios de SELECT, LOCK TABLES y SHOW VIEW.

  3. Conocimiento del nombre de tu base de datos. Si no lo sabes, puedes ver la lista de bases de datos con el comando SHOW DATABASES; una vez que entres en MySQL.

  4. Espacio en disco suficiente. El archivo de backup puede ser grande, especialmente si tu base de datos tiene muchos datos. Comprueba que tienes espacio en el lugar donde vas a guardar el archivo.

[TIP] Si tu web está gestionada con un panel como Syspanel (que se accede por el puerto 2106), puedes encontrar el nombre de tu base de datos y las credenciales en la sección de bases de datos del panel. No necesitas recordarlas de memoria.

Cómo hacer un backup mysql terminal paso a paso

Vamos a lo importante. Te voy a mostrar el comando básico y luego las variantes más útiles que puedes usar.

El comando básico de mysqldump

El comando más sencillo para hacer una copia de seguridad de una base de datos es este:

mysqldump -u usuario -p nombre_base_datos > backup.sql

Vamos a desglosarlo:

  • mysqldump → es el programa que estamos ejecutando.
  • -u usuario → aquí pones el nombre de tu usuario de MySQL.
  • -p → esta opción te pedirá la contraseña cuando ejecutes el comando. Es más seguro que ponerla directamente en el comando.
  • nombre_base_datos → el nombre de la base de datos que quieres respaldar.
  • > → este símbolo redirige la salida del comando a un archivo.
  • backup.sql → el nombre del archivo donde se guardará la copia.

Cuando ejecutes este comando, te pedirá la contraseña. Escríbela y presiona Enter. Verás que el cursor parpadea un momento y luego vuelves al prompt. No te preocupes si no ves ningún mensaje de éxito, eso significa que todo ha ido bien.

[INFO] Si tu base de datos es muy grande, el proceso puede tardar unos segundos o incluso minutos. No interrumpas el comando mientras se ejecuta.

Añadir fecha al nombre del archivo

Es muy recomendable que cada backup tenga un nombre único para poder identificar cuándo se hizo. Puedes añadir la fecha automáticamente con el comando date:

mysqldump -u usuario -p nombre_base_datos > backup_$(date +%d-%m-%Y).sql

Esto creará un archivo llamado backup_15-05-2025.sql por ejemplo. Así tendrás un histórico de copias y podrás recuperar la versión que necesites.

Hacer backup de varias bases de datos a la vez

Si tienes varias bases de datos y quieres respaldarlas todas, puedes usar la opción --all-databases:

mysqldump -u usuario -p --all-databases > backup_total.sql

Este comando creará una copia de seguridad de todas las bases de datos que el usuario tenga permisos para ver. Es útil si quieres hacer una copia completa del servidor.

Comprimir el backup para ahorrar espacio

Los archivos de backup suelen ser bastante grandes, pero puedes comprimirlos en el momento con gzip:

mysqldump -u usuario -p nombre_base_datos | gzip > backup.sql.gz

El archivo resultante será mucho más pequeño y ocupará menos espacio en disco. Para restaurar un backup comprimido, tendrás que descomprimirlo primero con gunzip.

[TIP] Si vas a almacenar varios backups, comprimirlos te permitirá conservar más copias en el mismo espacio.

Cómo restaurar una base de datos desde un backup

Hacer el backup es solo la mitad del trabajo. Saber restaurarlo es igual de importante, porque de nada sirve tener una copia si no sabes cómo recuperarla.

Para restaurar una base de datos desde un archivo .sql, usa el siguiente comando:

mysql -u usuario -p nombre_base_datos < backup.sql

Fíjate que aquí el símbolo cambia de dirección: en lugar de > usamos <. Esto le dice a MySQL que lea el archivo y ejecute todas las instrucciones SQL que contiene.

Si tu backup está comprimido, primero descomprímelo:

gunzip backup.sql.gz

Y luego restaura con el comando anterior.

[WARNING] Antes de restaurar un backup, asegúrate de que la base de datos de destino existe. Si no existe, créala primero con CREATE DATABASE nombre_base_datos; o la restauración fallará.

Automatizar el backup con cron (mysql backup cron)

Hacer backups manuales está bien, pero la gente se olvida. La solución es automatizar el proceso con una tarea programada llamada cron. Así, tu servidor hará el backup automáticamente cada día, semana o mes, sin que tengas que acordarte.

Cómo crear una tarea cron para mysqldump

Lo primero, crea un script de backup. Puedes crear un archivo con cualquier nombre, por ejemplo backup.sh, y ponerle el siguiente contenido:

#!/bin/bash
mysqldump -u usuario -pcontraseña nombre_base_datos > /ruta/donde/guardar/backup_$(date +%d-%m-%Y).sql
gzip /ruta/donde/guardar/backup_$(date +%d-%m-%Y).sql

[WARNING] Ten cuidado al poner la contraseña directamente en el script. Asegúrate de que el archivo tenga permisos restringidos para que solo tú puedas leerlo: chmod 700 backup.sh

Después, dale permisos de ejecución al script:

chmod +x backup.sh

Ahora, abre el editor de crontab:

crontab -e

Y añade una línea como esta para que el backup se ejecute todos los días a las 3 de la madrugada:

0 3 * * * /ruta/completa/a/tu/script/backup.sh

Guarda el archivo y ya tienes tu mysql backup cron funcionando.

Explicación de la sintaxis de cron

La línea del cron tiene 5 campos, separados por espacios:

  • Minuto (0-59)
  • Hora (0-23)
  • Día del mes (1-31)
  • Mes (1-12)
  • Día de la semana (0-7, donde 0 y 7 son domingo)

El asterisco * significa "todos". Así, la línea 0 3 * * * significa "a las 3:00 todos los días". Puedes ajustar la frecuencia según tus necesidades:

  • 0 2 * * 1 → todos los lunes a las 2:00
  • 0 4 1 * * → el día 1 de cada mes a las 4:00
  • 30 1 * * * → todos los días a la 1:30

[INFO] Si tu hosting usa un panel como Syspanel (accesible en el puerto 2106), es posible que tenga un gestor de cron integrado en la interfaz. Así no necesitas tocar la terminal para programar la tarea.

Preguntas frecuentes sobre backups MySQL

¿Cuánto tiempo debo conservar los backups?

Depende de lo críticos que sean tus datos. Una buena práctica es conservar al menos los backups de los últimos 30 días. Si tu negocio depende de los datos, valora guardar copias mensuales durante un año.

¿Puedo hacer un backup sin parar mi base de datos?

Sí, mysqldump está diseñado para hacer copias de seguridad sin interrumpir el servicio. Durante el proceso, las tablas se bloquean brevemente para garantizar la consistencia, pero es algo que pasa desapercibido en la mayoría de los casos.

¿Qué pasa si mi base de datos es muy grande?

Si tu base de datos supera varios gigabytes, mysqldump puede ser lento. En ese caso, considera usar herramientas como Percona XtraBackup o hacer backups incrementales. Pero para la mayoría de las webs y aplicaciones, mysqldump es más que suficiente.

¿Dónde debo guardar los backups?

Lo ideal es que los backups estén en un lugar diferente al servidor donde está tu base de datos. Si tu servidor falla, el backup debe estar a salvo. Puedes copiarlos a otro servidor, a un servicio de almacenamiento en la nube o a tu ordenador personal.

¿Cómo sé que mi backup funciona?

La única forma de saberlo es probando la restauración. Haz un backup, restáuralo en un entorno de pruebas y comprueba que los datos están completos. No esperes a tener un problema para descubrir que tus backups están corruptos.

¿Con qué frecuencia debo hacer el backup?

Si tu web se actualiza a diario, haz un backup diario. Si solo añades contenido una vez a la semana, un backup semanal puede ser suficiente. La clave es que, como mucho, pierdas los datos de un día.

Errores comunes y cómo solucionarlos

Vamos a ver algunos problemas típicos que te puedes encontrar y cómo resolverlos.

Error: "Access denied for user"

Este error significa que el usuario no tiene permisos suficientes. Solución: usa un usuario con privilegios sobre la base de datos, o pide a tu proveedor de hosting que te dé uno.

Error: "Unknown database"

El nombre de la base de datos está mal escrito o no existe. Verifica el nombre con el comando SHOW DATABASES;.

Error: "mysqldump: command not found"

El comando no está en tu PATH. En algunos sistemas, mysqldump se encuentra en /usr/bin/mysqldump o en /usr/local/mysql/bin/mysqldump. Prueba a usar la ruta completa.

El archivo de backup está vacío o es demasiado pequeño

Puede que la base de datos esté vacía o que el comando haya fallado silenciosamente. Comprueba el tamaño del archivo y si la base de datos tiene datos.

Conclusión: no dejes tu información al azar

Hacer un backup mysql terminal es una de las tareas más importantes que puedes hacer para proteger tu proyecto. Con mysqldump tienes una herramienta potente, fiable y gratuita que te permite crear copias de seguridad completas en cuestión de segundos.

Y con la automatización mediante mysql backup cron, puedes olvidarte del proceso y tener la tranquilidad de que tus datos están a salvo cada día.

No esperes a que sea demasiado tarde. Si no has hecho una copia seguridad base datos hoy, hazla ahora mismo. Te llevará menos de un minuto y te ahorrará muchos dolores de cabeza en el futuro.

[TIP] Haz una prueba de restauración al menos una vez al mes. Es la única forma de estar seguro de que tu sistema de backups funciona correctamente.

Si tienes cualquier duda, no dudes en contactar con nuestro equipo de soporte. Estamos aquí para ayudarte a que tu web y tus datos estén siempre seguros.

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel