さて、おそらく普通なら前述の方法ですんなりいくはずの移行ですが、よめいりの場合、すでにDBファイルがかなり大きくなってしまっていたため、もうひと手間かける必要がありました。今後、同じ場面に出くわす方もいるかと思い(また自分へのメモも兼ねて)、ここに残しておきます。
チカッパでは、phpMyAdminでインポートできるファイルの最大サイズは5120KBです。インポートすべきファイルがこれより大きかった場合、どうすればいいのか。
<大きすぎるWPファイルの分割インポート方法>
- パターンA:
それぞれのテーブルのデータサイズが5120KBより小さかった場合(5120KBを越えるテーブルがなかった場合)。この場合、エクスポート時、いくつかにファイルを区切ってやります。
- 古いDBへphpMyAdminでアクセス。
- データベースタブを選択。DBを選択。(テーブル一覧が表示されるはず。)
- ここでエクスポートタブを選択すると、エクスポートするテーブルを選択することができます。必要に応じて(各ファイルが5120KBを越えないように)区切ってやってください。(通常であれば、wp-postsが一番大きなファイルになるかと思うので、1度目はwp-postsのみでエクスポート、2度目はwp-posts以外のすべてを選択してエクスポート、という2分割でいいのではないかと思います)。「DROP TABLE」追加、「IF NOT EXISTS」追加、ファイルに保存、へのチェックも忘れずに。
- 分割エクスポートしたファイルすべてを、新しいDBにインポートしてやればokです。
- パターンB:
テーブルのデータサイズが1つでも5120KBを越えてしまっている場合。この場合、5120KBを越えてしまっているテーブルについては、テーブル内のデータも分割してやらねばなりません。インポートの方法もちょっとこれまでと違います。
まず、5120KBを越えていないテーブルについては、パターンAと同じ方法でエクスポート+インポートしてやります。5120KBを越えてしまった問題のテーブル(おそらくはwp-posts)についてのエクスポート+インポートのみ、以下のような手順で進めます。
- 古いDBへphpMyAdminでアクセス。
- データベースタブを選択。DBを選択。テーブル一覧から、該当テーブル(例えばwp-posts)を選択。(左のフレームから選択しても同じ)。
- エクスポートタブを選択。「DROP TABLE」追加、「IF NOT EXISTS」追加、ファイルに保存、にチェックをしてから、
- ファイル保存のすぐ上にある、「○○○列をダンプします。開始列は△△△です。」の箇所を修正します。最初の1つ目のエクスポートファイルは、5120KBに収まるように。2つ目からは1000KBに収まるくらいで区切っていきます。
よめいりの場合、wp-postsは全2915レコードあり、6.8MBあったため、
- 1500列をダンプ。0からスタート。(1)2.4MB
- 400列をダンプ。1500からスタート。(2)828B
- 400列をダンプ。1900からスタート。(3)1.4MB
- 400列をダンプ。2300からスタート。(4)1.2MB
- 400列をダンプ。2700からスタート。(5)564B
というような感じで区切ってみました。
- 新しいDBにphpMyAdminでアクセス。ここで、これまでと同じように順にインポートしていけばいいように思いますが、実は同じテーブルでの複数回のインポートは「上書き」されてしまうため、うまくいきません。つまり、(1)→(2)→(3)→(4)→(5)の順でインポートしても、最後に残っているのは(5)のデータのみなのです。
- そこで、まずは1つ目のファイル(1)を通常のインポートで取り込んだ後(1つ目を通常のやり方でインポートすることでテーブルができあがります)、
- 2つ目以降((2)から(5))のインポートには、phpMyAdminのSQLタブを利用していきます。データベースを選択した状態で(テーブルを選択するのではなく、データベースを選択)、SQLタブを選択。「データベース xxxxxx で SQL を実行する」というフォームを確認。
- 2つ目のファイル(2)をエディタで開いて、ヘッダ(?)が終わった後にくる最初の「INSERT INTO」から末尾の「;)」までをコピー。phpMyAdminのフォームにペースト。実行。これで、今度は、同じテーブル内のデータが「上書き」されずに「追加」されたはず。
- 以下、(3)から(5)までも同じ手順を繰り返します。最後にテーブルのレコード数を確認。古いDBのそれと合っていれば、無事完了です。
(2つ目以降の((2)から(5)の)ファイルを一括でエクスポートし、エディタで開いて、適宜、フォームにコピー&ペーストするのもいいと思います。が、大きなファイルなだけにエディタが悲鳴をあげがちなので、ここでは予め分割エクスポートしておきました。)
チカッパのphpMyAdminでは、エクスポート・インポート時に圧縮・解凍する機能がないようですが、サーバによってはそれらの機能を提供している場合もあるようです。その場合、圧縮せずにエクスポート、エディタで開いて手直し(コメントアウトなど必要に応じて)、圧縮してインポート、などの方法で、大きいファイルでも乗り切れる場合があるようです。ご参考までに。
今回もまた、いくつものサイトにお世話になりました。どうもありがとうございました。
<助けていただいた(参考にした)サイト>
ネタフリネット » wordpress2.9のためにMySQL5のやつにしてみた(チカッパの場合)
http://www.netafuri.net/?p=1337
MySQLを4から5へ(さくら+WPの場合) « Waviaei
http://waviaei.com/2009/05/24/mysql-4-5-sakura-wordpress/
HashiMのたわごと(?) : 2009年3月14日(土曜日) – MySQLを4から5へ
http://kita2.net/nisshi/2009/03/140611
WordPress 2.9 アップデートのための MySQL バージョンアップ | site hirac
http://hirac.info/site/archives/wordpress-2-9-update-mysql-version-up/
WordPressサイトのハッスルサーバーからヘテムル (heteml)への移転手順その② | 無料で使える情報探す「おぼえがき」
http://oboegaki.net/website/server/heteml-3.html
主婦にもデキる! WordPress講座 ~ブログで夢を叶えよう~
http://archive.mag2.com/200907122118510000289570000.html
★特にこちらのサイトに非常に助けられました! ありがとうございました!
初めまして。
自分もチカッパでwordpressを使っていて、MySQLのバージョンアップをどうしたものかと悩んでおりました。こちらの記事のおかげで無事MySQLのバージョンアップとwordpressのアップデートを成功させることができました。ありがとうございました!
>エセ紳士さん
はじめまして! お役に立てたようでなによりです。
チカッパ+WP組として、この先も情報を共有していけたらいいですね。
なにかの折にはまたよろしくお願いします :-)