EUC-JPの時代に作ったプログラムをUTF-8なサーバに移植するときとか用。
/etc/my.cnf の設定
[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 # for EUCJP default-character-set = ujis [client] # for EUCJP default-character-set = ujis [mysqldump] # for EUCJP default-character-set = ujis [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
システム全体がまだUTF-8なときは、次の設定も必要。
[mysqld] skip-character-set-client-handshake character-set-server = ujis collation-server = ujis_japanese_ci
DBの文字コード
データベースを作るときにちゃんと指定する。指定し忘れてたら変更する。
mysql> CREATE DATABASE hoge CHARACTER SET ujis; mysql> ALTER DATABASE piyo CHARACTER SET ujis;
確認
mysql> show variables like "char%"; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | ujis | | character_set_connection | ujis | | character_set_database | ujis | | character_set_filesystem | binary | | character_set_results | ujis | | character_set_server | ujis | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+
character_set_systemは気にしない
参考にさせていただいたページ
- http://mirrors.xservers.ro/mysql/doc/refman/5.1/ja/charset-table.html
- http://www.geminium.com/chiba_blog/2009/08/27/291/
- MySQLのクライアントエンコーディング - アシアルブログ
- 文字コードをUTF-8で統一しておく - littlestarlingの日記
本