Heim >Datenbank >MySQL-Tutorial >Wie kann ich MySQL-Tabellen automatisch in separate Dateien ablegen, ohne die Tabellennamen vorher zu kennen?
Automatisieren von MySQL-Tabellen-Dumps in separate Dateien
Mysqldump bietet eine praktische Möglichkeit, MySQL-Tabellen in einzelne Dateien zu sichern. Allerdings stellt die vorherige Kenntnis der Tabellennamen eine Einschränkung dar. Um dies zu beheben, gibt es alternative Ansätze, um jede Tabelle automatisch zu sichern.
Skriptbasierter Ansatz:
Durch die Nutzung von Script-Fu können Sie die Datenbank zum Abrufen abfragen Alle Tabellennamen und erstellen Sie ein Skript, das die Dumps ausführt. Hier sind einige Skriptsprachen, die auf MySQL-Datenbanken zugreifen können:
Eigenständiges Bash-Skript:
Das bereitgestellte Bash-Skript rationalisiert den Prozess weiter und macht zusätzliches Skripting überflüssig Wissen:
<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>
Dieses Skript fragt nach dem Datenbankkennwort, speichert die Daten jeder Tabelle in einer separaten komprimierten SQL-Datei und speichert sie in einem angegebenen Verzeichnis. Es übernimmt alle notwendigen Schritte, vom Abrufen der Tabellennamen bis zum Erstellen der Dump-Dateien.
Das obige ist der detaillierte Inhalt vonWie kann ich MySQL-Tabellen automatisch in separate Dateien ablegen, ohne die Tabellennamen vorher zu kennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!