MySQLを4から5へ(さくら+WPの場合)

このブログを設置しているさくらインターネットのレンタルサーバーでMySQL5.1.xが使えるようになりました。実際は数ヶ月前から可能だったのですが、自動的にアップデートとか何かされるだろうと勘違いしていて、その発表を待ってました。しかし、実はユーザーが手動で行わなければいけない事と、いったんデータベース(DB)を削除してから新規にMySQL5を選択して作成する必要がある事が分かった!

PHPMyAdminを使用してエクスポートしてきたSQLファイルを、ローカルPCにインストールしたXAMPPにインポートすると、文字化けしまくりで大変だった事が以前ある。なので、データベースのインポートとエクスポートが必要となる今回のバージョンアップ作業は正直見送りにしようかと思ってました。

が、注意箇所および詳しい手順がかかれている記事を参考に、ビールを飲んだ後の勢いで「えいやっ」と昨晩やってしましました。参考にさせていただいた記事は次の3つ。ありがとうございます。

手順

僕はコマンドを使ったMySQLの設定方法がよく分からないので、それ抜きでやってみました。

1. DBのエクスポート

まずはさくらのコントロールパネルからPHPMyAdminへログインし、DBをエクスポート。PHPMyAdminへは文字コードに気をつける。WordPressの場合はUTF-8。この記事を参考にして、「構造」欄の「DROP TABLEを追加」と「IF NOT EXISTSを追加」にチェックを入れ、圧縮無しのファイルとして保存する。ちなみに僕の場合15.7MBで、うち約11がjprelatedでした。

次のステップで、このエクスポートしたDBファイル(sql)をちょこっと編集したりするので、コピーを作成するなどして、バックアップしておくのが良いと思います。

2. エクスポートしたDBファイルの編集

データベース名がhogeとだとすると、エクスポートしたsqlファイルには先頭に「DB名hogeのデータベースを作成する」との内容の命令文が1行書かれています。しかし、さくらでDBを作成すると自動的のこのhogeのDBが作成されます。このsqlファイルをこのままインポートすると「DB名hogeのDBはもう既にあるよ!」とエラーが発生してインポートがストップしてしまいます。そこでこの命令文をコメントアウトしてやります。

テキストエディタでsqlファイルを開きます。この時にUTF-8で開く事に注意してください!

上から20行目あたりにある

[sql]CREATE DATABASE `hoge`;[/sql]

を以下のようにコメントアウトします。

[sql]– CREATE DATABASE `hoge`;[/sql]

sqlを保存して閉じる。

3. エクスポートしたDBの圧縮

PHPMyAdminのインポート画面にて、SQLファイルをアップロードしてインポートできる機能があります。これを使ってインポートするのですが、実は8MBのサイズのファイルまでしかインポートできません。そこでbzip2と言う形式に圧縮してアップロードします。エクスポートしたSQLファイルが8MB以下だと圧縮する必要なし。圧縮しても8MBを超えるようだと他の手段を。

bzip2の公式サイトから、Windows用の「Executables for 1.0.5」をダウンロード。これを適当な場所に保存します。ここではCドライブの直下としておきます。また、ファイル名が長ったらしいのでbzip2.exeに変更しておくと良いかも。

必要はありませんが、一応先ほどエクスポートしてきたSQLファイルをbzip2と同じ場所に移動しておきます。コマンドプロンプトを立ち上げ、Cドライブ直下に移動してから次のコマンドで圧縮開始。

C:bzip2.exe C:waviaeimysql4.sql

bzip2.exeの後にスペースを1ついれて、圧縮するファイルをフルパスで入力します。Enterを押すと圧縮が始まり、数秒で完了します。

4. MySQL4のDBの削除とMySQQL5のDBの作成

さくらのコントロールパネルに戻ります。PHPMyAdminは閉じておいてください。

「データベースの設定」画面にある「データベースの削除」をクリックしてください。確認のダイアログが出てくるのでOKを押すと、DBが削除されます。これでもう後戻りできません~!

「データベースの設定」画面に戻り、今度は新しくDBを作成します。このときにバージョンの選択を5.1して作成します。接続パスワードの設定を求めらるので入力。以前のDBと同じでもいいですが、一応変えときました。

これで新しくMySQL5のDBが作成されました。データベースサーバが変更されている点も注目してください。おそらく以前のDBよりも数字が大きいDBになっていると思います。

5. DBをインポートする前のMySQLの設定

PHPMyAdminを開きます。データベース名がhogeだとすると、画面左側のサイドバーからhogeを選択します。データベースhogeが表示されます。作成されたばかりなので中はにはまだ何も入っていません。

「操作」タブを開きます。そして一番下にある「照合順序」を変更します。sjisになっていると思いますが、ここをエクスポートした時のDBの照合順序に合わせます。WordPressの場合、utf8_generalciです。実行を押して変更完了。

6. DBをインポート

続いて「インポート」タブをクリックします。「インポートするファイル」の「参照」から、先ほど作成したbzip2のファイルを選択。実行して、問題なければOK!

7. wp-config.phpの編集

この時点で一度ブログをブラウザで開いてみてください。「データベースへの接続を確立できませんでした~」云々と表示されるはずです。さくらのMySQL4から5へのアップグレードでは、いったん4のDBを削除するため、DBが変わってしまうからです。

サーバにアップしているwp-config.phpの「DB_HOST」を新しいDBに書き換えます。もしパスワードも変更した場合は「DB_PASSWORD」も書き換えます。

編集したwp-config.phpファイルをアップロードして、再度ブログにアクセスすると、今度はちゃんと表示されるはずです。

8. チェック

すべてが問題なく終わって、元通りに表示されるようになったら、一応どこか変なところがないかチェックしておきましょう。特に過去記事の文字化けです。僕はあまりつかわないのですが、「~」(=波ダッシュ)をよく使う方は「波ダッシュ問題」と言うのが存在するそうです。その場合はwokamotoさんの記事を参考にしてForce Wave Dashプラグインを使用する等して解決してください。

4 Comments

  1. こんばんは!
    WordPress2.9でデータベースがMySQL 4.12以降じゃないと対応しなくなった、と聞いて、慌ててさくらサーバのデータベースをMySQL5.1に移行しました。
    移行に際しては、こちらの記事と参考サイトが大いに訳に立ちました。Toruさんがお使いのサーバほどではないのでしょうが、表示スピードが劇的に速くなった、と感じております。取り合えず、お礼とご報告まで。

    • ボーノさん、
      うまくいってよかったです!やはりDBの削除やらアップグレードやらは、何回やってもドキドキしますね(笑)。今読み返してみると、スクリーンショットも無く、かなり読みにくい文章ですが、お役に立ててよかったです~!

  2. 2.9にするにあたり、記事を参考にさせていただきました。
    手順通りに進めたら簡単でしたね。
    でもやっぱり削除などは緊張してしまいます。
    ありがとうございました。

    • しふぉんさん、
      うまくアップデートできてよかったです。何も問題なく進むと「なぁ~んだ、簡単やん」となるんですけどね。DBの削除、僕もデスクトップにダウンロードしたバックアップを何回も開いて問題が無い事を確かめたりしましたよ(笑)