Haciendo del Desarrollo y la Arquitectura Web, ciencia y pasión.

Comandos de Mysql y Mysqldump

Aqui os paso los comandos de consola (CLI) relacionados con mysql y mysqldump,en un resumen claro y directo de los más usados:


🔹 Comandos de consola con mysql

🔸 Conectarse al servidor MySQL:

mysql -u usuario -p

🔸 Conectarse a un host remoto:

mysql -h direccion_ip -u usuario -p

🔸 Ejecutar un archivo SQL:

mysql -u usuario -p nombre_base < archivo.sql

🔸 Ejecutar un comando SQL desde consola:

mysql -u usuario -p -e "SHOW DATABASES;"

🔸 Exportar el resultado de una consulta a un archivo:

mysql -u usuario -p -e "SELECT * FROM tabla;" nombre_base > salida.txt

🔹 Comandos típicos con mysqldump

🔸 Respaldar una base de datos completa:

mysqldump -u usuario -p nombre_base > respaldo.sql

🔸 Respaldar todas las bases de datos:

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

🔸 Respaldar solo la estructura (sin datos):

mysqldump -u usuario -p -d nombre_base > estructura.sql

-d o --no-data

🔸 Respaldar una tabla específica:

mysqldump -u usuario -p nombre_base nombre_tabla > tabla.sql

🔸 Respaldar con compresión:

mysqldump -u usuario -p nombre_base | gzip > respaldo.sql.gz

🧠 Tip extra: Comprobar versión de MySQL

mysql --version

🔄 Automatización de respaldos diarios con script

Aqui os paso un script Bash para automatizar los backups:

🔸 Script backup_mysql.sh

#!/bin/bash

# Configuración
USUARIO="tu_usuario"
PASSWORD="tu_contraseña"
BASES=(base1 base2)  # Lista de bases a respaldar
DIR_BACKUP="/ruta/a/backups"
FECHA=$(date +%F)

mkdir -p "$DIR_BACKUP"

for BASE in "${BASES[@]}"; do
    mysqldump -u "$USUARIO" -p"$PASSWORD" "$BASE" | gzip > "$DIR_BACKUP/${BASE}_$FECHA.sql.gz"
done

Asegúrate de darle permisos de ejecución:

chmod +x backup_mysql.sh

⏰ Programar con cron

Para que el script se ejecute automáticamente cada día a las 2:00 AM:

crontab -e

Y añade:

0 2 * * * /ruta/a/backup_mysql.sh