dumpファイルを作成・リストア

Last Updated:2006/2/25 9:49

まず、救出したいMTのMySQLのデータをバックアップ(ダンプ-丸ごと保存)する必要がある。
(このxreaでは管理画面のデータベースのページから「保存」で作成される)
それから、そのダンプしたファイル(以後dumpファイル)を再構成させるMTのMySQLにリストアする。

データをdumpする

mysqldumpコマンドで、データベースをダンプ(丸ごと保存する)。
今回、ここではローカル環境で、MySQLのユーザー"mt_user"が、grant以外の全権限を持つ(grant all)データベース"mt_test"のデータを、
ファイル名"mt_test050217.dump"としてバックアップする。

MS-DOSプロンプトで、


C:\WINDOWS>cd c:\
C:\>mysqldump -umt_user -pXXX mt_test > mt_test050217.dump

以上で、ディレクトリC:\にmt_test050217.dumpというファイルが作成される

書式は、以下の通り


mysqldump -u[ユーザー名] -p[ユーザーのパスワード] [database名] > [作成するdumpファイル名]

同じことがphpMyAdminからも出来る。
dumpファイルを作成したいデータベース(ここではmt_test)のメインページから、エクスポートをクリックする。
右フレーム左側のエクスポートの欄で「全選択」をクリックすると、テキストエリア内のテーブル全てが選択される。
今回はSQL文でエクスポートしたい(各テーブルのフィールドタイプ等全て保存される)ので、左下部の「SQL」にチェックを入れる。
SQLオプションは特にいじらず、右フレーム下部の「ファイルで保存する」にチェックを入れ、
データが大きい場合は圧縮タイプにもチェックを入れて「実行」ボタンを押す。

以上で、拡張子がsqlのdumpファイルが作成される。
その他txtとかcsvでも保存できる。

dumpファイルをリストアする

次に、上で作成したdumpファイルを、異なるDBにリストアする。

異なるMT上で上記データを扱いたい場合は、事前に、
インポート先のMTを作成しておかなければならない。

今回、インポート先のMTで使うDB名を"mt_new"と設定した。
また、そのDBのユーザーをmt_usrnew、そのパスワードをXXXとする。


C:\WINDOWS>cd c:\
C:\>mysql -umt_usrnew -pXXX mt_new < mt_test050217.dump

以上のコマンドをDOSプロンプトにて入力する。

2MBほどあるMTで使っていたdumpファイルは、途中エラーが何箇所が出たが、
特に不要(mt_logや使っていないテンプレートなど)だったので、さっくり削除。
するとうまくリストアできた。
(MySQLのバージョンが異なると上手くいかないみたいだ。)

完了!

注意点は、リストアした段階で、mt.cgiへのログインユーザーは
リストア元のMTのログインユーザーとなる点。

更に、元のMTのパス情報(phpでincludeなど)は書き換えていないので、
ほとんどまともにはローカルではサイトを見れなかった。
でも、確かに動いている!!!

感動。

Created On:2005/2/18 1:35