mysqlのテーブル指定をしていないdumpファイルから、指定したテーブルに該当するdumpだけを取り出す方法。
項目 | 例 |
---|---|
データベースのdumpファイル | all.dump |
抽出したいテーブル | HOGE |
# "Table structure for table *****"の行で分割
$ csplit all.dump '/Table structure for table/' {*}
# 分割したファイルから、抽出したいテーブル名が含まれるファイル名の確認
$ grep -il 'HOGE' ./x*
# dumpファイルのヘッダを作成
$ head -16 > HOGE_tables.dump
# 結合
$ grep -il 'HOGE' ./x* | xargs -I {} cat {} >> HOGE_tables.dump
# dumpインポート
$ mysql --user=USER --password=PASSWORD DATABASE < HOGE_tables.dump
※ head -16 の行数は、mysqlのバージョンによるかもしれないので適宜調整する
※ HOGEがvalueとして含まれているファイルもマッチするので、その場合は適宜grepコマンドを調整する