MySQL-Tabellen automatisch in separate Dateien sichern
Das integrierte Dienstprogramm mysqldump ermöglicht selektive Tabellen-Dumps, erfordert jedoch vorab festgelegte Tabellennamen . Für einen dynamischen Ansatz, der neue Tabellenzusätze verarbeitet, ist eine automatisierte Lösung erforderlich.
Eine solche Lösung ist ein Shell-Skript, das die Datenbank dynamisch nach allen Tabellennamen abfragt und jede Tabelle in einer separaten komprimierten Datei ablegt. Dadurch entfällt die Notwendigkeit einer manuellen Tabellennamenpflege im Dump-Skript.
Hier ist ein Beispielskript, das diese Funktionalität erreicht:
<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>
Dieses Skript fordert zur Eingabe des Datenbankkennworts auf und fragt die angegebene Datenbank ab für Tabellennamen und speichert die Daten jeder Tabelle als SQL-Befehle in einzelnen komprimierten Dateien im angegebenen Verzeichnis (oder standardmäßig im aktuellen Arbeitsverzeichnis).
Das obige ist der detaillierte Inhalt vonWie kann ich das Dumping von MySQL-Tabellen in separate Dateien automatisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!