mysqlのフルダンプファイルから特定のデータベースのみリストアする方法

mysqlのフルダンプしたファイルには全てのデーターベースの情報が含まれています。
cronなどで一定間隔でバックアップする際に便利ですが、開発中に一部のデーターベースの内容のみリストアしたい場合には困ると思います。

この場合は、一旦フルダンプファイルをcsplitを用いて、データベース単位で分割します。

$ csplit dump.sql /CREATE\ DATABASE/ {*}

これを実行すると、カレントディレクトリにデータベース単位にファイルが分割されますので、あとは目的のファイルをgrepなどで探して

$ mysql -u root -p データベース名 < ファイル名

などと実行すればOKです。

コメントを残す

メールアドレスが公開されることはありません。