bigdump.phpでデータインポート
2015/6/11 16:16:03更新
XAMPPのインストールが終了し、自分のパソコンにサーバー環境が整えば、XOOPS Cube Legacyをインストールし自分のホームページのバックアップサイトとして全体を構築します。
【XAMPPによるバックアップサイト作成手順】
xamppフォルダ内のhtdocsフォルダ内にXOOPS Cube Legacyをインストールします。(これはXOOPS2と大体同じ要領です)オリジナルのホームページと同じモジュールをインストールします。オリジナルのホームページのuploads内のファイル、変更したファイルがあれば同様に取り込みます。
最後にMySQLのデータベースにあるデータをSQLデータとしてオリジナルのホームページと同じデータを取り込みます。これらのデータをSQLデータとしてダウンロードする方法には
・バックアップ用のmoduleがインストールされていればそこからダウンロードできます。
・protectorのmoduleがインストールされていればそこからダウンロードできます。
・phpMyAdminからデータベース内のデータをSQLデータとしてエクスポートしファイルとしてダウンロードできます。
何れも問題なくSQLデータとしてダウンロードする事ができます。しかし、厄介なのがこのSQLデータをこのバックアップサイトに取り込む方法です。moduleを利用してのSQLデータはダウンロード形式が規定されているので、形式を比較的自由にできるphpMyAdminでエクスポートされたSQLデータファイルをバックアップサイトに取り込むことにしました。
■SQLデータをローカル環境XAMPP内のバックアップサイトに取り込む方法
・phpMyAdminを利用し、ダウンロードしたSQLファイルをインポートしようとするとどうしても取り込む途中でエラーが発生する。ダウンロードしたオリジナルのデータベースをphpMyadmiを利用しインポートしようとするとどうしてもエラーが発生するのです。エラーの内容ははっきり分からなかったのですが、タイムオーバーかファイルが大きすぎるのが原因だったようです。それまでの容量の小さいファイルであれば問題なく取り込むことができたからです。この方法では小分けにして取り込む必要があります。
・フリーソフトbigdump.phpを利用し、ダウンロードしたファイルからデータベースにインポートするそこで、phpMyAdmin以外の方法で取り込む方法はないかと調べた結果、bigdumpというソフトでで一気に取り込むことができることがわかりました。実際取り込み時にインジケータが付いていて便利な優れものです。どの程度までの大きなファイルが取り込めるのか分かりませんが、今のデータ量ではうまく行きました。
これを動作させるには、phpファイルですので、■bigdumpによるローカルサーバーへのインポート設定 | |
---|---|
$db_server | = 'localhost'; |
$db_name | = '******'; |
$db_username | = 'root'; |
$db_password | = '*******'; |
$filename | = '***' |
$db_connection_charset | = 'utf8' |
上記内容を設定し、htdocsフォルダ内に設置したあとアドレスlocalhost/bigdump.phpでブラウザから入れば動作します。この時データベース名が存在しないとさっぱり動作しません。上書きは出来るようなので、前のデータベースが残っていてもそのままbigdump.phpを動作させれば上書きされます。(ただし、bigdumpの設定で$db_connection_charset = 'utf8'にしないと文字化けが発生しました)
■bigdump.phpでデータを取り込む時にエラーが発生する。
bigdump利用の際エラー発生するとエラーメッセージが表示されます。それに従い、phpMyAdminからエクスポートする設定を変更するのも1つの方法です。
・取り込んだデータを見ると文字化けしている。phpMyAdminからダウンロードする時の構造設定で、「逆クオートでテーブル名やフィールド名を囲む」にチェックを入れてデータをエクスポートすると文字化けが発生することがわかりました。従ってこのチェックを外す必要があります。
・データを取り込む時、エラーが発生し停止してしまう。エラー内容は「At this place the current query includes more than 300 dump lines. That can happen if your dump file was created by some tool which doesn't place a semicolon followed by a linebreak at the end of each query, or if your dump contains extended inserts. Please read the BigDump FAQs for more infos.」
要するに300以上のqueryのダンプ行が超えるとダメだということかな???と勝手に解釈して、もともとphpMyAdminからエクスポートする時のデータ設定では「完全なINSERT文を作成する」を選択し設定する必要があります。もし、「拡張INSERT文を作成する」に設定すると1つのSQL文に対してデータのラインがたくさん作成され、300行を超えてしまうことがあります。
・bigdump.phpでデータを取り込む為のphpMyAdminエクスポート設定phpMyAdminからエクスポートしファイルをダウンロードする時に、文字化けを回避する為、具体的には次のように設定すれば、正常にbigdump.phpでデータベースのデータを取り込めるようになりました。
bigdump.phpでデータを取り込む為のphpMyAdminエクスポート設定表示
・その2 (この度、サーバーの更新に伴いPhpMyadminが変更され、bigdump.phpで取りこみ時、初期設定ではエラーが発生したので新しく設定を試みました。)
これらの手法については自分のパソコン環境下(Windows7)で実際に行ったもので、保証するものではありません。