はまったのでメモ。MySQLのサーバー側文字コード指定。
Ubuntu12.04LTSでMySQL5.5。
mysql> status -------------- mysql Ver 14.14 Distrib 5.5.22, for debian-linux-gnu (x86_64) using readline 6.2 Connection id: 36 Current database: Current user: tokibito@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 5.5.22-0ubuntu1 (Ubuntu) Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: latin1 Db characterset: latin1 Client characterset: utf8 Conn. characterset: utf8 UNIX socket: /var/run/mysqld/mysqld.sock Uptime: 4 sec Threads: 1 Questions: 107 Slow queries: 0 Opens: 299 Flush tables: 1 Open tables: 73 Queries per second avg: 26.750 --------------
Server charactersetがlatin1になってるのでutf8にしたい。
/etc/mysql/my.cnfを編集
5.0や5.1のときはdefault-character-setだったけど、名前が変わったそう。character-set-serverでmysqld指定します。
[mysqld] # 中略 character-set-server=utf8
MySQLの再起動
$ sudo service mysql restart
再起動したら確認してみる。
mysql> status -------------- mysql Ver 14.14 Distrib 5.5.22, for debian-linux-gnu (x86_64) using readline 6.2 Connection id: 36 Current database: Current user: tokibito@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 5.5.22-0ubuntu1 (Ubuntu) Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 UNIX socket: /var/run/mysqld/mysqld.sock Uptime: 8 sec Threads: 1 Questions: 107 Slow queries: 0 Opens: 299 Flush tables: 1 Open tables: 73 Queries per second avg: 13.375 --------------
変更できた。