Vider automatiquement les tables MySQL dans des fichiers séparés
L'utilitaire mysqldump intégré permet des vidages de tables sélectifs, mais nécessite des noms de tables prédéfinis . Pour une approche dynamique qui gère les ajouts de nouvelles tables, une solution automatisée est nécessaire.
L'une de ces solutions est un script shell qui interroge dynamiquement la base de données pour tous les noms de table et vide chaque table dans un fichier compressé distinct. Cela élimine le besoin de maintenance manuelle du nom de table dans le script de vidage.
Voici un exemple de script qui réalise cette fonctionnalité :
#!/bin/bash
# Descr: Dump MySQL table data into separate SQL files for a specified database.
# Usage: Run without args for usage info.
# Author: @Trutane
[ $# -lt 3 ] && echo "Usage: $(basename $0) <DB_HOST> <DB_USER> <DB_NAME> [<DIR>]" && exit 1
DB_host=$1
DB_user=$2
DB=$3
DIR=${4:-.}
[ -d $DIR ] || mkdir -p $DIR
echo -n "DB password: "
read -s DB_pass
tbl_count=0
for t in $(mysql -NBA -h $DB_host -u $DB_user -p$DB_pass -D $DB -e 'show tables')
do
echo "DUMPING TABLE: $DB.$t"
mysqldump -h $DB_host -u $DB_user -p$DB_pass $DB $t | gzip > "$DIR/$DB.$t.sql.gz"
tbl_count=$(( tbl_count 1 ))
done
echo "$tbl_count tables dumped from database '$DB' into dir=$DIR"
Ce script demande le mot de passe de la base de données, interroge la base de données spécifiée pour les noms de table et sauvegarde les données de chaque table sous forme de commandes SQL dans des fichiers individuels. fichiers compressés dans le répertoire spécifié (ou le répertoire de travail actuel par défaut).
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3