Heim > Datenbank > MySQL-Tutorial > Hauptteil

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

Linda Hamilton
Freigeben: 2024-10-30 15:19:03
Original
188 Leute haben es durchsucht

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!