Rumah > pangkalan data > tutorial mysql > Bagaimana untuk mengautomasikan Lambakan Jadual Pangkalan Data dalam MySQL Tanpa Menentukan Nama Jadual?

Bagaimana untuk mengautomasikan Lambakan Jadual Pangkalan Data dalam MySQL Tanpa Menentukan Nama Jadual?

Linda Hamilton
Lepaskan: 2024-10-26 19:33:29
asal
790 orang telah melayarinya

How to Automate Database Table Dumping in MySQL Without Specifying Table Names?

Mengautomasikan Lambakan Jadual Pangkalan Data untuk MySQL

MySQL menawarkan kaedah mudah untuk membuang data jadual ke dalam fail individu, yang boleh berguna untuk tujuan sandaran . Walau bagaimanapun, menyatakan secara manual setiap nama jadual dalam arahan dump menjadi tidak praktikal dalam persekitaran dinamik di mana bilangan jadual boleh berubah dari semasa ke semasa. Artikel ini meneroka penyelesaian untuk mengautomasikan proses lambakan, memastikan semua jadual sedia ada ditangkap dalam fail yang berasingan.

Lambakan Automatik

Manakala sintaks lalai MySQL memerlukan pengetahuan tentang jadual nama terlebih dahulu, tiada arahan langsung untuk membuang semua jadual secara automatik. Walau bagaimanapun, gabungan arahan dan skrip boleh menyelesaikan tugasan ini.

Pendekatan Skrip-fu

Satu pendekatan melibatkan mencipta skrip yang menanyakan pangkalan data untuk mendapatkan semula semua nama jadual . Selepas itu, ia boleh mengulangi senarai dan membuang setiap jadual secara individu. Pelbagai bahasa skrip boleh mengakses pangkalan data MySQL, termasuk Python, Perl dan PHP.

Contoh Skrip Bash

Di bawah ialah contoh skrip Bash yang membuang data jadual sebagai arahan SQL ke dalam fail termampat yang berasingan:

<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>
Salin selepas log masuk

Penggunaan dan Faedah

Skrip ini menggesa kata laluan pangkalan data dan membuang data ke dalam fail termampat dalam direktori yang ditentukan. Ia menghapuskan keperluan untuk mengemas kini skrip dump secara manual apabila jadual baharu ditambah. Selain itu, ia boleh diperluaskan dengan mudah untuk membuang berbilang pangkalan data dengan menyediakan senarai nama pangkalan data yang dipisahkan koma sebagai hujah ketiga.

Atas ialah kandungan terperinci Bagaimana untuk mengautomasikan Lambakan Jadual Pangkalan Data dalam MySQL Tanpa Menentukan Nama Jadual?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan