my.cnfと多言語化
wordpressインストール時にハマったのでメモ。
wordpressは、utf8で記事とかを保存するけど、mysqlのインストール時にujisとかにしてると文字化け起こす。
my.cnfの[mysqld]セクションに、default-character-set=utf8を追加してデータベース再構築。下記は、再構築した時のログ。
mysql> show create database wordpress; +-----------+--------------------------------------------------------------------+ | Database | Create Database | +-----------+--------------------------------------------------------------------+ | wordpress | CREATE DATABASE `wordpress` /*!40100 DEFAULT CHARACTER SET ujis */ | +-----------+--------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql> drop database wordpress; Query OK, 10 rows affected (0.04 sec) mysql> create database wordpress; Query OK, 1 row affected (0.00 sec) mysql> show create database wordpress; +-----------+--------------------------------------------------------------------+ | Database | Create Database | +-----------+--------------------------------------------------------------------+ | wordpress | CREATE DATABASE `wordpress` /*!40100 DEFAULT CHARACTER SET utf8 */ | +-----------+--------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql>
そして、再度インストール。orz
追記:でも、もじばけよる・・・orz
追記その2:どうも、mysqlへのInput/Output周りがItalicのままみたい。
でもって、WordPressのインストールと文字化け対応に書いてある対応をそのまま適応。PHPドキュメントあたりを見ても対策わかんなかった。多分、MySQLまわりに書いてるんだろーなー。ちょっと探してみよ。
追記その3:うーん、
#サーバ設定 [mysqld] default-character-set=utf8 skip-character-set-client-handshake
の設定が一番楽かなぁ・・・サーバ側の設定というのが厭だなぁ・・・
セッション毎に、「SET NAME utf8;」をやるのも良いけど、何かスマートじゃない。サーバの設定でやるのも良いけどレンタル鯖の時困るし、「SET NAME utf8;」だとWordPressをアップデートしちゃうと毎回書き直さなきゃならないのが厭だしなぁ・・困った。
MYSQLのドキュメント: 第9章 各国キャラクタセットと Unicode