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

Cómo hacer backup de una base de datos MySQL en Linux

Actualizado el 18 de diciembre de 2025

¡Hola! Soy tu técnico de soporte amigable. Hoy vamos a aprender una tarea fundamental para cualquier administrador de sistemas o dueño de un sitio web: cómo hacer un backup de una base de datos MySQL en Linux. No te preocupes si eres nuevo en esto, te guiaré paso a paso con un lenguaje claro y muchos ejemplos prácticos. Al final, tendrás la tranquilidad de saber que tus datos están seguros.

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

Imagina que tu sitio web o aplicación depende de una base de datos MySQL. Si ocurre un fallo en el servidor, un error humano (como borrar una tabla por accidente) o un ataque cibernético, podrías perder toda tu información. Un backup regular es tu red de seguridad. Como sysadmin, una de tus tareas principales es garantizar la integridad de los datos, y el backup es la herramienta clave.

Hacer un backup de tu base de datos MySQL en Linux no solo protege tu información, sino que también te permite:

  • Restaurar tu sitio rápidamente tras un incidente.
  • Migrar tu web a otro servidor sin complicaciones.
  • Realizar pruebas de desarrollo sin miedo a romper algo.

Herramientas básicas para el backup MySQL en Linux

Para hacer un backup de una base de datos MySQL en Linux, la herramienta estrella es mysqldump. Es un comando que viene incluido con la instalación de MySQL y MariaDB. También existen herramientas gráficas como phpMyAdmin (si tienes acceso web) o paneles de control como cPanel o Syspanel, pero aquí nos centraremos en la línea de comandos, que es más potente y flexible.

Requisitos previos

Antes de empezar, asegúrate de tener:

  • Acceso SSH a tu servidor Linux.
  • Credenciales de usuario MySQL con permisos para leer las bases de datos (generalmente el usuario root o uno con privilegios SELECT, LOCK TABLES, etc.).
  • Conocimientos básicos de navegación por terminal.

Método 1: Backup con mysqldump (el más común)

Este es el método que todo sysadmin backup debe conocer. mysqldump genera un archivo SQL con todas las instrucciones necesarias para recrear la base de datos.

Paso 1: Conéctate a tu servidor Linux por SSH

Abre tu terminal y escribe:

ssh usuario@tudominio.com

Te pedirá tu contraseña. Una vez dentro, estás listo.

Paso 2: Realiza el backup de una base de datos específica

El comando básico es:

mysqldump -u usuario_mysql -p nombre_base_datos > backup.sql

Ejemplo práctico:

mysqldump -u root -p mi_tienda > backup_mi_tienda.sql

Te pedirá la contraseña del usuario MySQL. Después de escribirla, se creará el archivo backup_mi_tienda.sql en el directorio actual.

[TIP] Si no quieres que te pida la contraseña cada vez, puedes guardarla en un archivo .my.cnf (pero asegúrate de que tenga permisos restringidos). No lo recomiendo para entornos compartidos.

Paso 3: Verifica que el backup se haya creado correctamente

Puedes comprobar el tamaño del archivo con:

ls -lh backup_mi_tienda.sql

También puedes echar un vistazo a las primeras líneas para confirmar que es un archivo SQL válido:

head -20 backup_mi_tienda.sql

Deberías ver líneas como -- MySQL dump y CREATE TABLE.

Paso 4: Backup de todas las bases de datos

Si quieres hacer un backup completo de todas tus bases de datos MySQL, usa:

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

Esto incluye las bases de datos del sistema (como mysql), así que ten cuidado al restaurarlo.

Método 2: Backup con compresión para ahorrar espacio

Los archivos SQL pueden ser muy grandes. Para ahorrar espacio en disco, puedes comprimirlos sobre la marcha con gzip:

mysqldump -u root -p mi_tienda | gzip > backup_mi_tienda.sql.gz

Para descomprimir después (al restaurar), usa:

gunzip -c backup_mi_tienda.sql.gz | mysql -u root -p mi_tienda

[WARNING] La compresión es útil, pero asegúrate de que el archivo comprimido no esté corrupto. Siempre verifica el backup periódicamente.

Método 3: Backup automatizado con cron (para sysadmins pro)

La mejor práctica es automatizar los backups. Puedes crear un script y programarlo con cron.

Paso 1: Crea un script de backup

Crea un archivo, por ejemplo /home/usuario/backup_mysql.sh, con este contenido:

#!/bin/bash
# Variables
USER="root"
PASSWORD="tu_contraseña"
DB_NAME="mi_tienda"
BACKUP_DIR="/backups/mysql"
DATE=$(date +%Y%m%d_%H%M%S)

# Crear directorio si no existe
mkdir -p $BACKUP_DIR

# Realizar backup
mysqldump -u $USER -p$PASSWORD $DB_NAME | gzip > $BACKUP_DIR/backup_$DB_NAME_$DATE.sql.gz

# Eliminar backups antiguos (más de 7 días)
find $BACKUP_DIR -name "*.sql.gz" -type f -mtime +7 -delete

echo "Backup completado: $BACKUP_DIR/backup_$DB_NAME_$DATE.sql.gz"

[WARNING] ¡Nunca pongas contraseñas en texto plano en un script! Si lo haces, asegúrate de que el archivo solo sea legible por el usuario root (permisos 600).

Paso 2: Haz el script ejecutable

chmod +x /home/usuario/backup_mysql.sh

Paso 3: Programa el cron

Edita el crontab con:

crontab -e

Añade una línea para ejecutar el script cada día a las 2:00 AM:

0 2 * * * /home/usuario/backup_mysql.sh

Guarda y listo. A partir de ahora, tendrás backups automáticos.

Método 4: Backup desde cPanel (si tu hosting lo usa)

Muchos clientes usan cPanel para gestionar su hosting. Si tienes acceso a cPanel, el proceso es más visual.

Paso 1: Accede a cPanel

Ve a https://tudominio.com/cpanel e inicia sesión.

Paso 2: Busca la sección "Backup" o "MySQL"

Dentro de cPanel, busca una opción llamada "phpMyAdmin" o "Backup" (depende de la versión). También puedes usar el asistente de backups.

Paso 3: Selecciona la base de datos

En phpMyAdmin, elige la base de datos que quieres respaldar en el panel izquierdo, luego haz clic en la pestaña "Exportar". Selecciona el método "Rápido" y formato SQL. Luego haz clic en "Continuar" y se descargará un archivo .sql.

[INFO] En cPanel también puedes hacer backups completos del sitio (incluyendo archivos y bases de datos) desde la sección "Backup". Es muy útil para migraciones.

Método 5: Backup desde Syspanel (anteriormente HestiaCP)

Si tu servidor usa Syspanel (el panel de control que antes se llamaba HestiaCP), el proceso es igual de sencillo. Recuerda que el acceso es por el puerto 2106.

Paso 1: Accede a Syspanel

Abre tu navegador y ve a https://tudominio.com:2106. Inicia sesión con tus credenciales de administrador.

Paso 2: Ve a la sección de bases de datos

En el menú lateral, busca "Bases de datos" o "Databases". Verás una lista de tus bases de datos MySQL.

Paso 3: Exporta la base de datos

Haz clic en el ícono de "Exportar" (generalmente una flecha hacia abajo) al lado de la base de datos que deseas respaldar. Syspanel descargará automáticamente un archivo .sql con el backup.

[TIP] Syspanel también te permite programar backups automáticos desde la sección "Backups" del menú. Puedes configurar la frecuencia (diaria, semanal) y el destino (local o remoto).

Restaurar un backup de MySQL en Linux

Saber hacer el backup es solo la mitad. También debes saber restaurarlo.

Restaurar desde un archivo SQL sin comprimir

mysql -u root -p nombre_base_datos < backup.sql

Restaurar desde un archivo comprimido

gunzip -c backup.sql.gz | mysql -u root -p nombre_base_datos

[WARNING] Antes de restaurar, asegúrate de que la base de datos destino exista. Si no, créala con CREATE DATABASE nombre_base_datos;.

Preguntas frecuentes (FAQ)

¿Puedo hacer un backup de una base de datos MySQL mientras está en uso?

Sí, mysqldump por defecto bloquea las tablas solo durante el tiempo de lectura, pero si tu aplicación es muy activa, considera usar la opción --single-transaction para evitar bloqueos largos (solo funciona con tablas InnoDB).

mysqldump -u root -p --single-transaction mi_tienda > backup.sql

¿Cada cuánto debo hacer un backup?

Depende de la frecuencia con la que cambien tus datos. Para sitios web dinámicos, recomiendo backups diarios. Para sitios estáticos, semanales puede ser suficiente. Los sysadmins backup suelen seguir la regla 3-2-1: 3 copias, 2 medios diferentes, 1 fuera del sitio.

¿Qué hago si mi backup es muy grande?

Usa compresión (como vimos con gzip) o divide el backup en partes con split. También puedes subirlo directamente a la nube con herramientas como rsync o scp.

¿El backup incluye los procedimientos almacenados y eventos?

Por defecto, mysqldump incluye procedimientos, funciones y eventos si usas la opción --routines y --events. Ejemplo:

mysqldump -u root -p --routines --events mi_tienda > backup_completo.sql

¿Cómo verifico que mi backup no está corrupto?

Puedes probar a restaurarlo en un entorno de prueba (como una base de datos local) o simplemente revisar el final del archivo SQL para ver si tiene la línea -- Dump completed. También puedes usar mysqlcheck para verificar la integridad.

Consejos finales para sysadmins

  • Prueba tus backups periódicamente: No hay nada peor que necesitar un backup y descubrir que está dañado. Programa una restauración de prueba cada mes.
  • Guarda los backups en un lugar seguro: No los dejes solo en el mismo servidor. Súbelos a un servicio en la nube (como S3, Google Drive) o a otro servidor.
  • Documenta tu proceso: Escribe un pequeño manual con los comandos que usas para que otros miembros del equipo (o tú mismo en el futuro) puedan seguirlo.
  • Usa nombres descriptivos: Incluye la fecha y el nombre de la base de datos en el nombre del archivo (ej: backup_mi_tienda_20231005.sql).

Conclusión

Hacer un backup de una base de datos MySQL en Linux no tiene que ser complicado. Con herramientas como mysqldump, un poco de automatización con cron y buenas prácticas, puedes dormir tranquilo sabiendo que tus datos están seguros. Ya sea que uses la línea de comandos, cPanel o Syspanel (recuerda, puerto 2106), el objetivo es el mismo: proteger tu información.

Espero que esta guía te haya sido útil. Si tienes alguna duda, no dudes en preguntar. ¡Feliz backup!

¿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