Bagaimanakah Saya Boleh Mengautomasikan Lambakan Jadual MySQL ke dalam Fail Berasingan?

Mary-Kate Olsen
Lepaskan: 2024-10-27 04:46:02
asal
619 orang telah melayarinya

How Can I Automate Dumping MySQL Tables into Separate Files?

Membuang Jadual MySQL untuk Mengasingkan Fail Secara Automatik

Utiliti mysqldump terbina dalam membenarkan pembuangan jadual terpilih, tetapi memerlukan nama jadual yang telah ditetapkan . Untuk pendekatan dinamik yang mengendalikan penambahan jadual baharu, penyelesaian automatik diperlukan.

Salah satu penyelesaian sedemikian ialah skrip shell yang menanya secara dinamik pangkalan data untuk semua nama jadual dan membuang setiap jadual ke dalam fail termampat yang berasingan. Ini menghapuskan keperluan untuk penyelenggaraan nama jadual manual dalam skrip dump.

Berikut ialah skrip contoh yang mencapai fungsi ini:

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

Skrip ini menggesa kata laluan pangkalan data, menanyakan pangkalan data yang ditentukan untuk nama jadual dan membuang setiap data jadual sebagai arahan SQL ke dalam fail termampat individu dalam direktori yang ditentukan (atau direktori kerja semasa secara lalai).

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengautomasikan Lambakan Jadual MySQL ke dalam Fail Berasingan?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!