MySQL - テーブル単位でダンプファイル出力!
Updated:
通常、データベース MySQL でダンプファイルを出力する場合、”mysqldump” コマンドを使ってデータベース単位に行うことが多いと思います。 当方のサーバでも普段はその方法を取り入れています。 ※実際には、ダンプ出力の他に “mysqlhotcopy” も併用していますが。。。
ただ、このダンプファイルから特定のテーブルを抜き出してインポートするのが若干面倒です。 普段のバックアップとしては問題ないのですが、サーバテスト等でテーブルをひとつひとつ確認しながらインポートしたい時などに面倒を感じます。
そこで当方は、このような時のためにシェルスクリプトを作成しています。 単純な物ですが、サーバ移行作業時にはとても重宝しています。
公開します。よろしければご参考に。
シェルスクリプト
MySQL 5.1 系、5.5 系どちらでも動作を確認しています。 以下は、予め作成しておいた dump_<テーブル名> というディレクトリへテーブルごとにダンプファイルを出力するシェルスクリプトです。
#!/bin/bash
DB=hoge
for TABLE in `mysql -uroot -pfugafuga -N -s -e "show tables in $DB;"`; do
echo $TABLE
mysqldump -u root -pfugafuga $DB $TABLE > dump_$DB/$TABLE.sql
done;
“mysql” コマンドのオプション(”-u”, “-p” 以外)について、
オプション | 説 明 |
---|---|
-N | 結果にカラム名を記述しません。 |
-s | サイレントモード。出力生成を少なくします。 |
-e | ステートメントを実行します。 |
参考サイト
以上。
Comments