2008年11月25日

MySQLインポートファイルがでかすぎる時には BigDump を使ってみよう!

朝からせっせとMediawikiバージョンアップに向けて作業してました。

まずはローカル環境でうまくできるかどうかテスト。

ところがしょっぱなからこける。

ローカル環境をある程度実際の環境と同じにするために(Mediawikiのバージョンは既に同じ)、さくらインターネットのデータベースの中身をそっくりローカルにコピーしようとしたら、これができないんです。
(前回のバージョンアップ時のローカル環境でのテストは過去記事「Mediawikiの移植(さくら→ローカル)」を参照なすって下さい)

さくらのデータベースの中身をそっくり phpmyadmin でエクスポートして、インポートしてもウィキクックレシピ(WikiCookRecipe)−みんなのレシピ みんなで料理−がローカルにきちんと構築されない、すなわちテーブルがきちんとインポートできてないんです。

Windowsのコマンドプロシジャで、xampp/mysql/bin に移動
 ↓
mysql wikicookrecipe -u root -p < エクスポートしたファイルをダウンロードしたもの

とやっても、一見正常終了するのだけど、ウィキクックレシピ(WikiCookRecipe)−みんなのレシピ みんなで料理−の中身が全然表示されません。

じゃあ、と phpmyadmin を使ってインポートしようとしてみたのですが、ファイルが大きすぎると文句を言われます。
そりゃそうかもしれません。前回バージョンアップ時(今年のはじめ)から食材情報アップを頑張ったからデータベースの中身は増えてるわけです。(実は密かにこの事態をおそれていました。いずれは立ち向かわねばならない状況なのですが・・・)

xampp/php/php.ini の memory_limit、post_max_size、upload_max_filesize をチェックし、全部32Mくらいにし、果ては max_execution_time だの max_input_time だのまで設定値を大きくしてやりましたが、なんの効果も無し。

でも、この方法は未来が無いんですよね。
もっともっとSQLファイルがでかくなってしまったら、そのつどどんどん大きく設定値を変えなきゃいけない。
その場しのぎの対策よりはもうちょっと根本的な対策をしなければ・・・と思って、あっちをサーフ、こっちを検索して、ようやく BigDump という MySQL の巨大SQLファイルを分割して実行してくれるフリーソフトを発見(ダウンロードはこちら→http://www.ozerov.de/bigdump.php)。

これを使ってインポートしてみたら、一発でOKじゃなかった、一回こけたんです。一つのクエリーの行数が多すぎるとかなんとか文句が出て・・・。
そこでさくらインターネットでのエクスポート時に「生成するクエリの最大長」が50000になっていたのを100にしてSQLファイルを作成してみたら、BigDumpが無事最後まで動いて、ローカル環境にウィキクックレシピ(WikiCookRecipe)−みんなのレシピ みんなで料理−のデータベースがきちんとコピーされました。

いやあ、大変だったけど、ここを乗り越えれば、後は前回と同じように最新Mediawikiをダウンロードして、コピー、update.phpを走らせる(今回は実行時間が短かった)と、すんなりとバージョンアップができました(ローカル環境でね)。

BigDump の使い方は上記のダウンロードページに説明が載ってますので、そちらを参照なさって下さい。
おおざっぱに言うと、

1.ダウンロード → 解凍

2.BigDump.php の中の変数 $db_server、$db_name、$db_username、$db_password に値をセット。

3.localhost の下に好きなディレクトリを一つ作って、その中に BigDump.php とインポートしたいSQLファイルを置く。

4.ブラウザでBigDump.phpを実行。画面の指示に従い、実行ボタンを押して待つ。

ちなみに、SQLファイルが大きすぎてインポートができない・・・というケースに対しては、こちらにも情報がいくつかあります。

http://www.phpmyadmin.net/pma_localized_docs/Documentation_ja.html#faq1_16

さあ、今度は本番に向けての作業だ!

ウィキクックレシピ(WikiCookRecipe)−みんなのレシピ みんなで料理−は、みんなで食材情報やレシピを投稿したり、閲覧したりするサイトです。ユーザ登録は無料、お気軽にご参加下さい。閲覧の仕方、投稿の仕方が分かりづらいなどありましたら、このブログに是非その旨コメント下さい。回答するとともに、少しずつでも使いやすく改善していきたいと思っています。

ウィキクックレシピ(WikiCookRecipe)−みんなのレシピ みんなで料理−11月24日のデータ

登録ユーザ数:24
食材ページ数:692
食品成分ページ数:1
レシピ数:28
新着食材ページ:無し
新着食品成分ページ:無し
新着レシピ:無し

この記事は、次のトラックバック・コミュニティにトラックバックしています。各コミュニティには、テーマに沿ったいろんな人のブログ記事が集まっています。興味のある方は覗いてみて下さい。
にほんブログ村 トラコミュ Mediawikiへ
 Mediawiki 

 
 
 
posted by WCR管理人 at 17:52 | Comment(0) | TrackBack(4) | Mediawiki
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック

お知らせ:Mediawikiバージョンアップ(1.11.0→1.13.2)作業終了
Excerpt: 予告通り、今日10:00からウィキクックレシピ(WikiCookRecipe)−みんなのレシピ みんなで料理−で、Mediawiki のバージョンアップ(1.11.0→1.13.2)を行い、無事終了い..
Weblog: WikiCookRecipe日記
Tracked: 2008-11-26 12:16

MySQL5.1への道は遠い
Excerpt: &amp;gt; 4月15日(水)10:00より、ウィキクックレシピ(WikiCookRecipe)−みんなのレシピ みんなで料理−のデータベースバージョンアップ(MySQL4.0→MySQL5.1)..
Weblog: WikiCookRecipe日記
Tracked: 2009-04-15 17:54

やっとこさでMySQL5.1へ・・・
Excerpt: &amp;gt; 4月16日(木)10:00より、ウィキクックレシピ(WikiCookRecipe)−みんなのレシピ みんなで料理−のデータベースバージョンアップ(MySQL4.0→MySQL5.1)..
Weblog: WikiCookRecipe日記
Tracked: 2009-04-16 16:08

データベース移行完了しました!!
Excerpt: SAKURA Internet での MySQL 4 → 5 への移行作業はとりあえず完了しました。ヘ(^o^)/ ダウンロードしたデータベースは 43.3MB。案の定、phpMyAdminではインポ..
Weblog: Internet Zone::WordPressでBlog生活
Tracked: 2010-10-13 00:07
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。