MySQLの文字化け問題で参考になったのでメモっとく

MySQLといえば文字化けです。
4.1以降の文字化け問題は、
MySQLが内部で文字コードの変換をしようとすることから
発生するようです。


参考ページ
http://wota.jp/ac/?date=20061011


対策は
MySQL文字コードをあらゆるパラメータで統一する。
('SET NAMES utf8'などでは一部のパラメータしか変更されない)
MySQLないで自動変換させない。
につきるようです。


設定方法


/etc/my.cnf

[mysqld]
default-character-set=utf8 #文字コードの指定
skip-character-set-client-handshake #自動変換をさせない



こうなったらOK


mysql> show variables like "char%";

                                                                                                                                        • +
Variable_name Value
                                                                                                                                        • +
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir /usr/local/mysql/share/mysql/charsets/
                                                                                                                                        • +

8 rows in set (0.00 sec)

mysql> status;

                          • -

mysql Ver 14.12 Distrib 5.0.37, for pc-linux-gnu (i686) using readline 4.3

Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /tmp/mysql.sock
Uptime: 1 min 29 sec

Threads: 1 Questions: 5 Slow queries: 0 Opens: 12 Flush tables: 1 Open tables: 6 Queries per second avg: 0.056

                          • -

ではでは