Hacer backup de base de datos MySQL


¿Por qué hacer backups?

Los backups son esenciales para proteger tus datos. Te permiten restaurar tu base de datos en caso de:

  • ✅ Pérdida accidental de datos
  • ✅ Corrupción de la base de datos
  • ✅ Ataques o problemas de seguridad
  • ✅ Migración a otro servidor

Método 1: Backup desde phpMyAdmin

Paso 1: Acceder a phpMyAdmin

  • Ingresá a phpMyAdmin
  • Seleccioná la base de datos que querés respaldar

Paso 2: Exportar la base de datos

  • Hacé clic en la pestaña Exportar o Export
  • Seleccioná el método Rápido o Personalizado
  • Para backups, generalmente el método rápido es suficiente

Paso 3: Configurar opciones

  • Formato: SQL (recomendado para backups)
  • Compresión: Seleccioná gzip o zip para archivos grandes
  • Hacé clic en Continuar o Go

El archivo se descargará automáticamente.


Método 2: Backup desde la terminal (mysqldump)

Backup de una base de datos específica:

mysqldump -u usuario -p nombre_base_de_datos > backup.sql

Ejemplo:

mysqldump -u root -p mi_webapp > backup_2024.sql

Te pedirá la contraseña y creará el archivo backup.sql.

Backup con compresión:

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

Esto crea un archivo comprimido que ocupa menos espacio.

Backup de todas las bases de datos:

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

Método 3: Backup con fecha automática

Para crear backups con fecha en el nombre:

mysqldump -u root -p nombre_base_de_datos > backup_$(date +%Y%m%d_%H%M%S).sql

Esto creará un archivo como: backup_20241215_143022.sql


Opciones avanzadas de mysqldump

Incluir solo estructura (sin datos):

mysqldump -u root -p --no-data nombre_base_de_datos > estructura.sql

Incluir solo datos (sin estructura):

mysqldump -u root -p --no-create-info nombre_base_de_datos > datos.sql

Incluir procedimientos almacenados y funciones:

mysqldump -u root -p --routines nombre_base_de_datos > backup.sql

Incluir eventos:

mysqldump -u root -p --events nombre_base_de_datos > backup.sql

Backup completo con todo:

mysqldump -u root -p --routines --events --triggers nombre_base_de_datos > backup_completo.sql

Automatizar backups con cron

Podés crear un script para hacer backups automáticos:

Crear script de backup:

#!/bin/bash
# Configuración
DB_USER="root"
DB_PASS="tu_contraseña"
DB_NAME="nombre_base_de_datos"
BACKUP_DIR="/ruta/backups"
DATE=$(date +%Y%m%d_%H%M%S)

# Crear directorio si no existe
mkdir -p $BACKUP_DIR

# Hacer backup
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME | gzip > $BACKUP_DIR/backup_$DATE.sql.gz

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

echo "Backup completado: backup_$DATE.sql.gz"

Hacer el script ejecutable:

chmod +x /ruta/al/script/backup.sh

Agregar a cron (backup diario a las 2 AM):

0 2 * * * /ruta/al/script/backup.sh

Backup remoto

Para guardar backups en otro servidor o servicio de almacenamiento:

mysqldump -u root -p nombre_base_de_datos | gzip | ssh usuario@servidor_remoto "cat > /ruta/remota/backup.sql.gz"

O usando SCP:

mysqldump -u root -p nombre_base_de_datos | gzip > backup.sql.gz
scp backup.sql.gz usuario@servidor_remoto:/ruta/remota/

Verificar el backup

Después de crear un backup, verificá que sea válido:

# Verificar que el archivo existe y tiene contenido
ls -lh backup.sql

# Verificar que es SQL válido (debería mostrar comandos SQL)
head -20 backup.sql

O intentá importarlo en una base de datos de prueba para verificar que funciona.


Mejores prácticas de backup

  • ✅ Hacé backups regularmente (diario para bases de datos importantes)
  • ✅ Guardá backups en múltiples ubicaciones (servidor, local, nube)
  • ✅ Comprimí los backups para ahorrar espacio
  • ✅ Probá restaurar backups periódicamente para verificar que funcionan
  • ✅ Mantené múltiples versiones de backups (últimos 7-30 días)
  • ✅ Documentá el proceso de backup y restauración

Problemas comunes

El backup es muy grande

  • Usá compresión (gzip)
  • Considerá hacer backup solo de tablas importantes
  • Eliminá datos antiguos antes del backup

Error "Access denied"

  • Verificá que el usuario tenga permisos suficientes
  • Verificá que la contraseña sea correcta
  • Usá el usuario root si es necesario

El backup tarda mucho

  • Es normal para bases de datos grandes
  • Hacé backups durante horas de bajo tráfico
  • Considerá usar opciones como --single-transaction para bases de datos grandes

¿Necesitás ayuda?

Si tenés problemas haciendo backups o necesitás configurar backups automáticos, abrí un ticket desde el panel de billing.baires.host o contactanos por soporte.

También podés escribirnos por nuestras redes:

¿Fue útil la respuesta? 0 Los Usuarios han Encontrado Esto Útil (0 Votos)