Maison >base de données >tutoriel mysql >Comment puis-je vider automatiquement les tables MySQL dans des fichiers séparés sans connaître au préalable les noms des tables ?
Automatisation des vidages de tables MySQL dans des fichiers séparés
Mysqldump offre un moyen pratique de vider les tables MySQL dans des fichiers individuels. Cependant, connaître les noms des tables à l'avance constitue une limitation. Pour résoudre ce problème, il existe des approches alternatives pour vider automatiquement chaque table.
Approche basée sur un script :
En tirant parti de script-fu, vous pouvez interroger la base de données pour récupérer tous les noms de tables et créez un script qui effectue les vidages. Voici quelques langages de script capables d'accéder aux bases de données MySQL :
Script Bash autonome :
Le script Bash fourni rationalise davantage le processus, éliminant ainsi le besoin de scripts supplémentaires connaissances :
<code class="bash">#!/bin/bash # dump-tables-mysql.sh [ $# -lt 3 ] && echo "Usage: <DB_HOST> <DB_USER> <DB_NAME> [<DIR>]" && exit 1 DB_host= DB_user= DB= DIR= [ -n "$DIR" ] || DIR=. test -d $DIR || mkdir -p $DIR read -sp "DB password: " DB_pass echo echo "Dumping tables into separate SQL command files for database '$DB' into dir=$DIR" 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, transfère les données de chaque table dans un fichier SQL compressé distinct et les stocke dans un répertoire spécifié. Il gère toutes les étapes nécessaires, de la récupération des noms de table à la création des fichiers de vidage.
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!