my.cnf文字コード設定
データをutf8で取り込んだんだけど、mysqlで表示しようとすると文字化けした。
/etc/my.cnfのmysql daemonとmysql clientの両方にdefault-character-set=utf8を設定すると文字化けは解消されます。
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=1 default-character-set=utf8 [mysqld_safe] log-error=/var/log/mysしかしqld.log pid-file=/var/run/mysqld/mysqld.pid [mysql] default-character-set=utf8
mysql clientからのアクセスはこれで文字化け解消されたのだけど、PerlのDBIモジュール経由でDBにアクセスするとやはり文字化けに。そのときは、同じく/etc/my.cnfに以下の設定を追加してmysqldの再起動を行うことでこちらも解消できます。
[mysqld] skip-character-set-client-handshake