Maison > base de données > tutoriel mysql > le corps du texte

Comment puis-je vider automatiquement les tables MySQL dans des fichiers séparés sans connaître au préalable les noms des tables ?

Linda Hamilton
Libérer: 2024-10-30 15:19:03
original
187 Les gens l'ont consulté

How can I automatically dump MySQL tables into separate files without knowing table names beforehand?

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 :

  • Python avec mysql-connector ou sqlalchemy
  • PHP avec PDO ou mysqli
  • Ruby avec mysql2
  • Java avec JDBC ou JPA

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!