Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengautomasikan Lambakan Jadual MySQL ke dalam Fail Berasingan?
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>
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!