MySQL 5.1 @さくら
Posted by くれす under MySQL, Tech | Permalink | | Leave A Comment | No Comments
文字コードの問題で何度か障害が出たものの、とりあえずバージョンアップ完了。MediaWikiがマトモに動かなくなるという障害が発生。影響調査とリグレッションはもっと計画的に行いたいところ。
MySQLバージョンアップ (4.0→5.1)
現行データ(MySQL 4.0)をダンプ
mysqldumpを使用し、データベースのダンプを保存する。
[cre@www218 ~]$ mysqldump-4.0 –character-set=utf8 dbname > dump.sql
文字コード回りの問題が厄介すぎたので、こちらを参考にした。さくらだとサーバのエンコードがujis(EUC-JP?)になっているらしく、ダンプ作成時に –character-set オプションで utf8 を指定してやらないと化ける。
新DB(5.1)にインポート
さくらインターネットの管理画面で旧DBを削除し、MySQL 5.1のDBを作成する。
作成したら、先ほどダンプしたファイルをDBにインポートする。
mysql> ALTER DATABASE dbname CHARACTER SET utf8;
mysql> \C utf8
mysql> \. dump.sql
DB作成時の文字コードがujisとなっているため、ここでも文字コードの設定変更が必要。動いていないDBなので、ALTER DATABASEしちゃってOK。
MySQLのバージョンアップはこれで終わり。
【障害】MediaWikiが動かない
はい、デグレきたこれ。(←ちゃんと影響調査しろよ)
MediaWikiのメインページを開いたら、こんなん出ました。
from within function “Article::pageData”. MySQL returned error “1267: Illegal mix of collations (utf8_bin,IMPLICIT) and (ujis_japanese_ci,COERCIBLE) for operation ‘=’ (mysql103.db.sakura.ne.jp)”.
サーバ側とクライアント側で文字コードが合ってない?のかな。クライアント側が utf8 になっていない模様。こちらを参考に、LocalSettings.phpを修正。グローバル変数 $wgDBmysql5 を true にすると、DB接続時に SET NAMES utf8 が実行されるらしい。(すごい実装だな…)
MySQLの利用者数は多そうだけど、あんまり初心者向けではないなあ、とか。