もう随分前のことになりますが、WordPress 2.9 になってから MySQL のバージョンが MySQL 4.1.2 以上が必須になりました。このサイトを運営しているハッスルサーバーの MySQL4 のバージョンは 4.0.27。ハッスルサーバーでは、MySQL5を新しく提供を始めたので、MySQL 4がバージョンアップすることはないと思われるので、MySQL5 へ移行しなくてはなりません。

めんどくさいなぁ、と思って放っておいたのだけれど、時間帯別アクセス数の推移がおかしい。今までの経験上、訪問者のピークは22時から24時くらいの間になるのだけれど、12時以降横ばい。もしかして、サーバーの限界を超えたのか? とサーバー移転を検討してみたものの、まずは原因の切り分けをしてみよう、というところに落ち着いたのです。

なので、その第一弾といて、データベースサーバーを移転してみることにしました。サーバーが違えば、レスポンスが上がるのではないか、という期待を込めて、同じハッスルサーバーの MySQL5 のデータベースサーバーへデータを移してみました。

以下、その手順と覚え書き。

概要は大ざっぱにいうと下記のよう。

  1. phpMyAdmin で MySQL4 のデータをデフォルト設定にてファイルにエクスポート
  2. phpMyAdmin で MySQL5 へインポート
  3. wp-config.php のデータベースサーバーの設定を変更

文字化けしたり、容量オーバーで読み込まなかったりといろいろ試行錯誤した結果、一番簡単な方法を見つけたのでポイントをメモ。

1) phpMyAdmin の文字コードが(ログインするときに) UTF-8 になっていることを確認。
これを忘れるとハッスルサーバーの場合デフォルトは EUC になってしまうので注意。

2) スキマーの問題。
ログインネームを選んでエクスポートすると、データベース全体がエクスポートさて、ユーザーネーム等のテーブルを管理する情報(スキマー)もエクスポートされ、インポートするときにユーザー名が競合して MySQL5 にインポートできないらしい。なので、データベースを選んでエクスポートするのではなく、すべてのテーブルを全て選択してのエクスポートをおすすめします。そうすると、スキマーはエクスポートされません。

3) エクスポートしたファイルが 2MB 以上だと、ハッスルサーバーではインポートできない。
初めから gzip なんかでエクスポートした方がよい。(圧縮なしファイルを Mac にて zip にしてインポートしようとしたら、「Compressed size is not equal with the value in header information.」というエラーが出ました。Windows だったら多分大丈夫だと思います。)データベース全体をエクスポートしてしまうと、スキマー情報を消すために、テキストエディタでエクスポートした SQL ファイルを開く必要が出てしまうので、2) で紹介した方法をとるのがベスト!

この3つの点に気をつければ、エクスポートしたファイルをそのままインポートして、wp-config.php の設定を変えるだけ。データベース移行も楽々ですね。

参考にしたのは下記サイト。(微妙にやり方が違います。)
→Y&M blog + L:WordPress 2.9アップグレードの為のMySQL5データ移行
→アフィリエイトでお小遣い:ハッスルサーバーでWordPress2.9移行完了