数GBのダンプファイルをインポートしたくても共用サーバーの場合ですと数十MBに制限されていることが多くて入れられません。VPS や専有サーバーの場合は設定を変更してアップロードできる最大サイズを変更する方法もありますが、ファイルサイズが増えるたびに変更するのは大変です。
しかし BigDump を使えば巨大な SQL ファイルをサーバーに合わせて分割インポートしてくれるので、ファイルサイズが大きくなってもサーバーの設定を変更しなくても良いですし、共用サーバーでも巨大なファイルをインポートすることができます。
ここでは BigDump を使った SQL ファイルのインポートを説明します。説明にあたって以下のページが参考になりましたのでこちらも御覧ください。
MySQL のデータをエクスポートする
phpMyAdmin を使う場合は以下のような設定でエクスポートをします。
ポイントとしては作成するクエリの最大長が50000だと途中でインポートに失敗してしまいますので、100にしてエクスポートをします。さらに細かい設定部分についても画像の通りですが詳しくない方は以下のページを参考にしてください。
サーバーに必要なファイルをアップロードする
今回必要なファイルは以下の2点。
- example.sql
- bigdump.php
example.sql とは今回インポートする SQL ファイルのことです。bigdump.php のファイルについては以下のページからダウンロードしてください。
bigdump.php のデータベース情報を編集する
41 42 43 44 | $db_server = 'localhost'; $db_name = 'example'; $db_username = 'root'; $db_password = 'password'; |
サーバーにファイルをアップロードする
bigdump.php と example.sql を同じディレクトリにアップロードします。誰でもアクセスできないようにIPアドレスやBASIC認証などでアクセス制限をかけておくのが好ましいです。
BigDump でインポートをする
サーバーにアップロードした bigdump.php にブラウザからアクセスすると以下のような画面がでてきます。
同じ階層にあるファイルが表示されていると思います。今回インポートしたいファイルの横にある Start Import というリンクをクリックすればインポートが開始されます。
ファイルのインポートが開始されます。進捗状況が表示されますので100%になれば完了です。ページを再読込してしまうとインポートした内容を削除して再度インポートが開始されてしまいますので注意してください。
BigDump 以外の方法でのインポート
皆さんは巨大なデータはどのようにインポートしていますか。通常はそこまでデータベースは肥大化しないものなのでしょうか。それについても、よろしければコメント欄やトラックバックで教えて頂けると幸いです。
kezuさんのコメント
いつも有益な情報をありがとうございます。
楽しく拝見させていただいております。
以前ぼくも同じ悩みがあり、下記の方法にたどり着きました。
ご参考になれば幸いです^^
[さくらインターネット]大きなファイルをデータベースにインポートする | HappyQuality
http://www.happyquality.com/2009/07/27/1018.htm