En este artículo te mostraré cómo crear un script .cmd
para automatizar el respaldo de tus bases de datos MySQL de forma efectiva, utilizando únicamente herramientas nativas de Windows.
✅ ¿Por qué automatizar tus backups?
- Evitas pérdidas de información por fallos imprevistos.
- Reduces la intervención manual y errores humanos.
- Aseguras respaldo diario o programado sin esfuerzo.
- Integración fácil con nubes como OneDrive o Google Drive.
🛠️ Herramientas necesarias
Herramienta | Propósito |
---|---|
mysqldump.exe | Exportar bases de datos |
mysql.exe | Cliente CLI de MySQL |
.cmd (Batch Script) | Automatizar tareas |
Task Scheduler | Programar tareas periódicas |
📁 Estructura del script
@echo off
REM === Configuración ===
set "MYSQL_BIN=C:\Program Files\MySQL\MySQL Server 8.0\bin"
set "USERNAME=root"
set "PASSWORD=TuPasswordAqui"
set "BACKUP_DIR=C:\RespaldoMySQL"
set "DATESTAMP=%DATE:~10,4%-%DATE:~4,2%-%DATE:~7,2%"
REM === Crear carpeta con fecha ===
mkdir "%BACKUP_DIR%\%DATESTAMP%"
REM === Respaldar todas las bases excepto las de sistema ===
for /f "skip=1 delims=" %%D in ('""%MYSQL_BIN%\mysql.exe" -u%USERNAME% -p%PASSWORD% -s -N -e "SHOW DATABASES;" | findstr /V "information_schema performance_schema mysql sys""') do (
echo Respaldando base de datos: %%D
"%MYSQL_BIN%\mysqldump.exe" -u%USERNAME% -p%PASSWORD% --databases %%D > "%BACKUP_DIR%\%DATESTAMP%\%%D.sql"
)
echo ✅ Backup completado con éxito.
pause
🔄 Diagrama de flujo
flowchart TD A[Inicio del Script] --> B[Establecer variables] B --> C[Crear carpeta con fecha] C --> D[Obtener lista de bases de datos] D --> E[Excluir bases del sistema] E --> F[Respaldar cada base de datos] F --> G[Guardar archivo .sql] G --> H[Fin]
🔐 Seguridad
- Evita contraseñas en texto plano cuando sea posible.
- Protege la carpeta de respaldo o usa cifrado.
⏰ Programar con Task Scheduler
- Abre "Programador de tareas"
- Crea tarea nueva: "Respaldo MySQL Diario"
- En Acción: programa
cmd.exe
con argumentos:/c "C:\ruta\mi_script_backup.cmd"
- Guarda y prueba
🧠 Extensiones posibles
Compresión al final:
powershell Compress-Archive -Path "%BACKUP_DIR%\%DATESTAMP%\*" -DestinationPath "%BACKUP_DIR%\%DATESTAMP%.zip"
Eliminar backups antiguos:
forfiles /p "%BACKUP_DIR%" /d -7 /c "cmd /c rd /s /q @path"
📌 Conclusión
Con este sencillo pero poderoso script, puedes mantener tus datos respaldados de forma segura y ordenada sin software adicional.