"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je automatiser le dumping des tables MySQL dans des fichiers séparés ?

Comment puis-je automatiser le dumping des tables MySQL dans des fichiers séparés ?

Publié le 2024-12-21
Parcourir:331

How Can I Automate Dumping MySQL Tables into Separate Files?

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).

Dernier tutoriel Plus>

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