mysqlの文字コード
データベースを別の所から移植するに際し、文字コードを調べてみたら変なことに。
[text]
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
[/text]
latin1ってのが色んな所にいるのでutf8に統一したい。
ここを参考に/etc/my.cnfを編集
http://ext.omo3.com/linux/mysql_character_set.html
[text]
[client]
default-character-set=utf8
[mysqld]
default-character-set = utf8
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8
[/text]
で、mysqlを再起動
[text]
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/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
[/text]
すっきり。
ちなみに、wordpressは各テーブルにおいて
[text]
DEFAULT CHARSET=utf8
[/text]
としていたので影響ありませんでした。さすがですね。
上記はmysqldumpのファイルを覗いたら見つけた記述で、一応データも
[text]
nkf --guess mysqldumpのファイル
[/text]
でチェックしたら、utf8(LE)で問題なし。