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!