Maison >base de données >tutoriel mysql >Comment puis-je automatiser le dumping des tables MySQL dans des fichiers séparés ?
Vider automatiquement les tables MySQL dans des fichiers séparés
L'utilitaire mysqldump intégré permet des vidages sélectifs de tables, 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é :
<code class="bash">#!/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 ) <DB_HOST> <DB_USER> <DB_NAME> [<DIR>]" && exit 1 DB_host= DB_user= DB= 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"</code>
Ce script demande le mot de passe de la base de données et interroge la base de données spécifiée. pour les noms de table et vide les données de chaque table sous forme de commandes SQL dans des fichiers compressés individuels dans le répertoire spécifié (ou le répertoire de travail actuel par défaut).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!