MySQL 文字化け対策 2
[MySQL] MySQL 文字化け対策
http://d.hatena.ne.jp/medusajap/20071219/1198032569
こっちが不十分だったので、重要なポイントの付け足し。
注意!)my.cnfに
[mysqld]
default-character-set=sjis
を追加後、再起動させても「character_set_connection」「character_set_database」の設定が反映されない場合の対処方法です。*1
my.cnfの[mysqld]にある
character-set-server = latin1
collation-server = latin1_general_ci
を削除し、新たに下の二行を追加。
default-character-set=sjis
skip-character-set-client-handshake
以上で終了。
my.iniへの設定は一切必要ないです。
「character_set_system」「character_set_filesystem」以外のキャラクタがセットされるはず。
mysql> SHOW VARIABLES LIKE 'char%';
Variable_name Value
character_set_client sjis
character_set_connection sjis
character_set_database sjis
character_set_filesystem binary
character_set_results sjis
character_set_server sjis
character_set_system utf8
character_sets_dir C:\xampp\mysql\share\charsets\
どうやら「default-character-set」の初期化対象が「character-set-server」らしく、
「character-set-server」でセットすると「default-character-set」の項目が無視されるみたい。
厳密には上書きされるためか。
「character_set_system」「character_set_filesystem」のValueに関しては、
systemがutf8とfilesystemがbinaryなんで、放っておいても問題ないかと。
*1:(環境:Win XP XAMPP)