私のデータベースをダンプするには、次のスクリプトを使用しています。良い結果。データベーステーブルがダンプされていることをまず確認し、ダンプがある場合はスキップして次のテーブルに移動する機能を追加したいと思います。
DB_host=127.0.0.1
DB_user=root
DB=mydb
DB_pass=mydbpassword
DIR=/
[ -n "$DIR" ] || DIR=.
test -d $DIR || mkdir -p $DIR
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: $t"
mysqldump -h $DB_host -u $DB_user -p$DB_pass $DB $t > $DIR/$t.sql
(( tbl_count++ ))
done
echo "$tbl_count tables dumped from database '$DB' into dir=$DIR"
答え1
このコードブロックを変更してください。
echo "DUMPING TABLE: $t"
mysqldump -h $DB_host -u $DB_user -p$DB_pass $DB $t > $DIR/$t.sql
(( tbl_count++ ))
これに関して:
echo "DUMPING TABLE: $t"
if [ -e "$DIR/$t.sql" ]; then
echo "TABLE $DIR/$t.sql exists, skipping..."
else
mysqldump -h $DB_host -u $DB_user -p$DB_pass $DB $t > $DIR/$t.sql
fi
(( tbl_count++ ))