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 ステートメントを実行します。

参考サイト


以上。





 

Sponsored Link

 

Comments