モロモロ工事中です

WordPress をインストールしたさくらインターネットの共有鯖で MySQL4 から MySQL 5 に移行しつつ文字コードを EUC-JP から UTF-8 に変える方法

WordPress,開発環境 — タグ: , , — さくら @ 2009/04/20 2:18

さくらです♪こんばんわ♡☆彡

やっとさくらの鯖も MySQL5.1 に対応したみたいだから移行してみたわ。
なんか WordPress も速くなるらしいし期待 ageage よね!

ついでにデータベースの文字コードを EUC-JP から UTF-8 に変更してみたの。
どこに書いてたか忘れてたけど、MySQL4 の UTF-8 はバグってるらしいって聞いてたから EUC-JP にしてたのね。でもトラバが文字化けしたりする原因になってるっぽかったし、WordPress をもっとシャキシャキ動くようにしたいから前から UTF-8 に変更したかったんだけど、なんとなく伸び伸びになってたの。なんで今回一緒に片付けることにしたわ。

同じことしたい人も他にいるかもしれないから、やり方まとめとくわね。
まず最初に全体的な流れを説明するわ。

  1. データベースのダンプを作成する
  2. MySQL4 データベースを削除する
  3. MySQL5 データベースを再作成する
  4. データベースダンプをリストアする
  5. WordPress の設定を変更する

MySQLAdmin とか使ってもできると思うんだけど、わざわざネットワークトラフィック使う意味があんまりないから全部鯖上のシェルで操作するやり方を説明してるわよ。先に TeraTerm とか何でもいいからターミナルエミュレータを用意しといてね。ターミナルは UTF-8 を強制的に表示できるやつが便利だと思うわよ。

あ…そうそう、一ついい忘れてたんだけど、MySQL5 が使えるかは共有 SSL が使えるかとセットになってるはずだから、コントロールパネルのドメイン設定とかで SSL が使えるか確認してから移行作業するかどうか検討してね♡

あと以下の作業を始める前に、WordPress の wp-config.php のデータベースパスワードをコメントアウトするとかして WordPress を一時停止しといた方がいいと思うわ。じゃ頑張って!!

データベースのダンプを作成する

ダンプってのは丸まんま取り出したデータって意味でとらえて貰って構わないわ。データベースダンプの場合、CREATE TABLE とかデータベースを再作成するのに必要なデータ一式ってことよ。

ダンプを取るには mysqldump コマンドを使うの。普段はバックアップを取るのに使うやつね。

ちなみに今、さくらインターネットの共有鯖には MySQL4 用の mysqldump-4.0 と MySQL5 用の mysqldump がインスコされてるはずなの。当然今回は MySQL4 から MySQL5 に移行するんだから、mysqldump-4.0 を使うのよ。ターミナルで鯖にログオンしたらこんな感じで実行するの。

$ cd [どっか]
$ mysqldump-4.0 -u [USER] -h [HOST] [DBNAME] -p > mysql.dump
Enter password:

[どっか] はどっか適当なディレクトリのことよ。別に HOME でも構わないわ。
[USER] はデータベースユーザー名、[HOST] はデータベースホスト名、[DBNAME] はデータベース名ね。データベース初期化したときにさくらインターネットから教えてもらってるはずよ。

コマンドを実行したらパスワード入力待ち状態になるからちゃんと入力して。入力したら mysql.dump ってファイルにデータベースダンプが取れるわ。後で使うから大事に取っとくのよ。

え?ユーザー名とかが分かんないですって?
よく今まで使ってこれたわね…悪いけど付き合ってらんないわww

MySQL4 データベースを削除する

さくらインターネットのコントロールパネルの [データベースの設定] から [データベースを削除] ボタンを押せば消せるわ。このキャプチャの下の方にあるボタンよ。

データベースの削除

消す前に深呼吸でもして、手抜かりが無いか確認した方がいいと思うわ。
もう後戻りできないところに来てるの、ワタシ達…
一緒に元気な赤ちゃん育てましょ!!

MySQL5 データベースを再作成する

データベースを消したらそのまま新しいデータベースを作ればいいわ。MySQL のバージョンが選べるようになってるから MySQL5.1 を選ぶのよ。

データベースの作成

ついでにデータベースのパスワードを変えとくのもいいわね。

データベースダンプをリストアする

リストアってのはダンプを元に戻すってことね。
ちょっと今回は文字コードを変更する関係で、リストアする前にデータベースのデフォルト文字セットを UTF-8 に変更したりしてるわよ。要らない人はその辺もっとさくらにザーメン飛ばしちゃって。

リストアするには mysql コマンドでダンプファイルを読みこめばいいの。とりあえずターミナルに戻ってコマンドを実行してちょうだい。
後でログとか見たかったら script コマンドを先に実行しといたらいいと思うわ。これしとくと、typescript ってファイルにコマンドと結果全部が保存されるの。

$ script
Script started, output file is typescript
$ mysql -v -u [USER] -h [HOST] [DBNAME] -p

mysql コマンドを -v 付きで実行してるのは、後で \. コマンドでダンプを読み込む際に実行したコマンドを表示させるためね。これするとメッセージが大量に表示されるようになるから、バカでかいダンプファイル作ってる人は -v 付けない方がいいと思うわよ。
で、MySQL データベースにログオンしたらまず \s コマンドで文字セットを見て頂戴。こんな感じで全部 ujis になってるんじゃないかしら?

mysql> \s
[省略]
Server characterset:    ujis
Db     characterset:    ujis
Client characterset:    ujis
Conn.  characterset:    ujis
[省略]

ujis ってのは EUC-JP のことね。とりあえず utf8 になってなかったら alter database コマンドで文字セットを変えるの。

mysql> alter database [DBNAME] character set utf8;

[DBNAME] はデータベース名ね。さくらインターネットの共有鯖ならユーザー名と一緒になってると思うわ。実行したら \s コマンドで再確認してね。

mysql>\s
[省略]
Server characterset:    ujis
Db     characterset:    utf8
Client characterset:    ujis
Conn.  characterset:    ujis
[省略]

Db characterset が utf8 に変わってると思うわ。これを確認してから \C [CHARSET] コマンドでクライアントと接続文字セットも utf8 に変えるの。

mysql> \C utf8
Charset changed

これで Client characterset と Conn. characterset も utf8 に変わるはずよ。\s で再確認してちょうだい。
本当は Client characterset はターミナルの設定に合わせて指定しないといけないんだけど、その辺は行間を読んでよねww

文字セットの変更が終わったらダンプをリストアするわ。\. コマンドを実行しちゃって!

mysql> \. mysql.dump
[省略]
Query OK, 1 row affected (0.00 sec)
mysql> \q
Bye
$ exit
Script done, output file is typescript

リストアしたら mysql はすぐ終了しちゃってもいいわよ。シェルからも exit してるのは script コマンドを終了させるためね。exit の代わりにCtrl-D でもいいわよ。

暇だったらここで typescript ファイルを見てみるのもいいと思うわ。
まあさくら程度ブログで記事書いてる人はデータベースも結構大きくなってる思うから、目視で検査するのは無理っぽいんだけどね。
どっちにしろ作業ログなんか気休め程度に思っといた方がいいわよ。
この時点で何か問題見つけてももうどうにもならないんだからwww

WordPress の設定を変更する

WordPress の設定で最小限必要なのは、データベースが新しいホストに変わってるはずだからそれを直すことね。後、データベース再作成のときにパスワード変えたりとかしてたらそれも直さないといけないわよ。

一応今回は WordPress の移行に関する説明だからこの辺の詳細は省略するわね。詳しく知りたい人は ja.wordpress.org の インストールガイド でも見てね。

とりあえずこれで「MySQL4 から MySQL5 への移行 + WordPress の再設定 + MySQL の文字コードを EUC-JP から UTF-8 にする」は完了よ!
さくらのやり方を参考にして失敗しても知らないけど、やる気のある人はトライしてみて!!!

さくら

9件のコメント

  1. FC2 縺九i WordPress 縺ォ繝医Λ繝?け繝舌ャ繧ッ縺励※縺ソ繧九ユ繧ケ繝

    WordPress 繧偵う繝ウ繧ケ繝医?繝ォ縺励◆縺輔¥繧峨う繝ウ繧ソ繝シ繝阪ャ繝医?蜈ア譛蛾ッ悶〒 MySQL4 縺九i MySQL 5 縺ォ遘サ陦後@縺、縺、譁?ュ励さ繝シ繝峨r EUC-JP 縺九i UTF-8 縺ォ螟峨∴…

    トラックバック by 繝、繧キ繝樊ゥ滄未 FC2 謾ッ驛ィ — 2009 年 4 月 20 日 @ 03:07
  2. あら、形兆さん…ご苦労様
    まだ文字化けするのね。

    文字化けする条件はだいたいこっちの想像どおりね…
    WordPress がコメントとして取り込む先頭部分にタグが入ってると化けるみたいだわ。
    とりあえずあんたのトラバは晒し age しとくわwww

    さて…どっちのせいかしら?…FC2?…WordPress?…
    ちゃんと調べたいんだけど、稼働中のブログでテストするのも気が引けるのよね…

    コメント by さくら — 2009 年 4 月 20 日 @ 03:11
  3. [...] 文字化けするってことね。 WordPress をインストールしたさくらインターネットの共有鯖で MySQL4 から MySQL 5 に移行しつつ文字コードを EUC-JP から UTF-8 に変える方法|ゆっくり…して…イっ [...]

  4. [...] と。 ここが参考になりました(多謝)。 [...]

    ピンバック by MySQL5へ移行 « 藜株余録 — 2009 年 12 月 20 日 @ 17:27
  5. [...] 移行が必要 <参考> WordPress をインストールしたさくらインターネットの共有鯖で MySQL4 から MySQL 5 に移行しつつ文字コードを EUC-JP から UTF-8 に変える方法 « ゆっくり…して…イってネ! [...]

    ピンバック by ブログ統合とURL変更 « Sadoru.log::Skiing — 2010 年 1 月 15 日 @ 03:11
  6. こんにちは。MTのデータベースをMySQL4からMySQL5へ移行しようと、phpMyAdminからエクスポートしようとしたところ、エラーになってしまいました。こちらの記事を参考に、コマンド作業で無事完了できました。ありがとうございました。

    コメント by ひろし — 2010 年 8 月 1 日 @ 17:03
  7. MTのデータベースをMySQL4からMySQL5へ移行完了

    MovableType(MT)のバージョンアップ(4.21->5.02)をしようと思い立ったのですが、大きな問題がある事が判りました。MT5ではデータベースMySQLはVer5以上しか対応しない事です。そこで、MySQL4…

    トラックバック by Nakamura's Weblog — 2010 年 8 月 1 日 @ 22:49
  8. [...] WordPress をインストールしたさくらインターネットの共有鯖で MySQL4 から MySQL 5 に移行しつつ文字コードを EUC-JP から UTF-8 に変える方法 | さくらたんどっとびーず [...]

  9. [...] のリストア方法についてはWordPress をインストールしたさくらインターネットの共有鯖で MySQL4 から MySQL 5 に移行しつつ文字コードを EUC-JP から UTF-8 に変える方法に詳しく書いてますので [...]

この投稿へのコメントの RSS フィード。 TrackBack URI

現在、コメントフォームは閉鎖中です。

Copyright © 2024 さくらたんどっとびーず | powered by WordPress with Barecity