ホームページ >データベース >mysql チュートリアル >MySQL テーブルを別のファイルにダンプすることを自動化するにはどうすればよいですか?
MySQL テーブルを個別のファイルに自動的にダンプします
組み込みの mysqldump ユーティリティにより、テーブルを選択してダンプできますが、事前に指定されたテーブル名が必要です。新しいテーブルの追加を処理する動的なアプローチには、自動化されたソリューションが必要です。
そのようなソリューションの 1 つは、データベースにすべてのテーブル名を動的にクエリし、各テーブルを個別の圧縮ファイルにダンプするシェル スクリプトです。これにより、ダンプ スクリプトでテーブル名を手動でメンテナンスする必要がなくなります。
この機能を実現するサンプル スクリプトは次のとおりです。
<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>
このスクリプトは、データベース パスワードの入力を求め、指定されたデータベースをクエリします。テーブル名を取得し、各テーブルのデータを SQL コマンドとして指定されたディレクトリ (またはデフォルトでは現在の作業ディレクトリ) 内の個別の圧縮ファイルにダンプします。
以上がMySQL テーブルを別のファイルにダンプすることを自動化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。