mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

MySQL - テーブル単位でダンプファイル出力!

[ サーバ構築 ] [ MySQL ]

こんばんは。

通常、データベース MySQL でダンプファイルを出力する場合、"mysqldump" コマンドを使ってデータベース単位に行うことが多いと思います。 当方のサーバでも普段はその方法を取り入れています。 ※実際には、ダンプ出力の他に “mysqlhotcopy” も併用していますが。。。

ただ、このダンプファイルから特定のテーブルを抜き出してインポートするのが若干面倒です。 普段のバックアップとしては問題ないのですが、サーバテスト等でテーブルをひとつひとつ確認しながらインポートしたい時などに面倒を感じます。

そこで当方は、このような時のためにシェルスクリプトを作成しています。 単純な物ですが、サーバ移行作業時にはとても重宝しています。

公開します。よろしければご参考に。

シェルスクリプト

MySQL 5.1 系、5.5 系どちらでも動作を確認しています。 以下は、予め作成しておいた dump_<テーブル名> というディレクトリへテーブルごとにダンプファイルを出力するシェルスクリプトです。

1
2
3
4
5
6
7
8
#!/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