Heim  >  Artikel  >  Datenbank  >  Wie automatisiere ich das Dumping von Datenbanktabellen in MySQL, ohne Tabellennamen anzugeben?

Wie automatisiere ich das Dumping von Datenbanktabellen in MySQL, ohne Tabellennamen anzugeben?

Linda Hamilton
Linda HamiltonOriginal
2024-10-26 19:33:29691Durchsuche

How to Automate Database Table Dumping in MySQL Without Specifying Table Names?

Automatisieren des Dumps von Datenbanktabellen für MySQL

MySQL bietet eine praktische Methode zum Dumpen von Tabellendaten in einzelne Dateien, was für Sicherungszwecke nützlich sein kann . Allerdings wird die manuelle Angabe jedes Tabellennamens im Dump-Befehl in dynamischen Umgebungen, in denen sich die Anzahl der Tabellen im Laufe der Zeit ändern kann, unpraktisch. In diesem Artikel wird eine Lösung zur Automatisierung des Dumping-Prozesses untersucht, um sicherzustellen, dass alle vorhandenen Tabellen in separaten Dateien erfasst werden.

Automagic Dumping

Während die Standardsyntax von MySQL Tabellenkenntnisse erfordert Wenn Sie die Namen im Voraus eingeben, gibt es keinen direkten Befehl, um alle Tabellen automatisch zu sichern. Eine Kombination aus Befehlen und Skripten kann diese Aufgabe jedoch erfüllen.

Skriptbasierter Ansatz

Ein Ansatz besteht darin, ein Skript zu erstellen, das die Datenbank abfragt, um alle Tabellennamen abzurufen . Anschließend kann es die Liste durchlaufen und jede Tabelle einzeln sichern. Verschiedene Skriptsprachen können auf MySQL-Datenbanken zugreifen, darunter Python, Perl und PHP.

Beispiel-Bash-Skript

Unten finden Sie ein Beispiel-Bash-Skript, das Tabellendaten als SQL-Befehle ausgibt in separate, komprimierte Dateien:

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

[ $# -lt 3 ] && echo "Usage: $(basename ) <DB_HOST> <DB_USER> <DB_NAME> [<DIR>]" && exit 1

DB_host=
DB_user=
DB=
DIR=

[ -n "$DIR" ] || DIR=.
test -d $DIR || mkdir -p $DIR

echo -n "DB password: "
read -s 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>

Verwendung und Vorteile

Dieses Skript fordert zur Eingabe des Datenbankkennworts auf und speichert die Daten in komprimierten Dateien im angegebenen Verzeichnis. Dadurch entfällt die Notwendigkeit, das Dump-Skript manuell zu aktualisieren, wenn neue Tabellen hinzugefügt werden. Darüber hinaus kann es leicht erweitert werden, um mehrere Datenbanken zu sichern, indem als drittes Argument eine durch Kommas getrennte Liste von Datenbanknamen bereitgestellt wird.

Das obige ist der detaillierte Inhalt vonWie automatisiere ich das Dumping von Datenbanktabellen in MySQL, ohne Tabellennamen anzugeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn