#!/bin/bash

# 🔐 Demander les identifiants à l'utilisateur
read -p "Nom d'utilisateur MySQL : " USER
read -s -p "Mot de passe MySQL : " PASSWORD
echo ""
read -p "Hôte MySQL [localhost] : " HOST
HOST=${HOST:-localhost}  # si vide, valeur par défaut = localhost

# 📁 Configuration du backup
BACKUP_DIR="."
DATE=$(date +%Y-%m-%d_%H-%M)
OUTPUT="$BACKUP_DIR/full_backup_$DATE.sql"

# Créer le dossier de backup si inexistant
mkdir -p "$BACKUP_DIR"

# Bases à ignorer
IGNORE="information_schema performance_schema mysql sys"

# 📦 Récupérer la liste des bases utiles
DBS=$(mysql -u"$USER" -p"$PASSWORD" -h"$HOST" -e 'SHOW DATABASES;' 2>/dev/null | awk 'NR>1' | grep -vE "$(echo $IGNORE | sed 's/ /|/g')")

if [ -z "$DBS" ]; then
    echo "Erreur : Impossible de se connecter ou aucune base trouvée."
    exit 1
fi

# 🚀 Début du dump
echo "Début du backup complet..."
for DB in $DBS; do
    echo "Dump de la base $DB..."
    mysqldump -u"$USER" -p"$PASSWORD" -h"$HOST" \
        --databases "$DB" \
        --routines \
        --triggers \
        --events \
        --single-transaction \
        --quick \
        --skip-lock-tables \
        >> "$OUTPUT"
done

echo "✅ Backup terminé avec succès : $OUTPUT"
