Heim >Datenbank >MySQL-Tutorial >Wie kann ich MySQL-Tabellen automatisch in separate Dateien ablegen, ohne die Tabellennamen vorher zu kennen?

Wie kann ich MySQL-Tabellen automatisch in separate Dateien ablegen, ohne die Tabellennamen vorher zu kennen?

Linda Hamilton
Linda HamiltonOriginal
2024-10-30 15:19:03283Durchsuche

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

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:

  • Python mit mysql-connector oder sqlalchemy
  • PHP mit PDO oder mysqli
  • Ruby mit mysql2
  • Java mit JDBC oder JPA

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!

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