MySQL5.5でServer charactersetを変更する

はまったのでメモ。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
--------------

変更できた。