Thursday, February 02, 2006

MySQL文字コードの設定

■MySQL文字コードの設定

mysql> status;
--------------
mysql Ver 11.18 Distrib 3.23.58, for redhat-linux-gnu (i386)

Connection id: 93
Current database:
Current user: root@localhost
Current pager: stdout
Using outfile: ''
Server version: 3.23.58
Protocol version: 10
Connection: Localhost via UNIX socket
Client characterset: latin1
Server characterset: latin1
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 2 hours 24 min 15 sec

Threads: 1 Questions: 9245 Slow queries: 0 Opens: 47 Flush tables: 1 Open tables: 25 Queries per second avg: 1.068
--------------


# vi /etc/my.cnf
[mysqld]
default-character-set=utf8

[mysql]
default-character-set=utf8

上手く行かなかった。起動後に、以下のコマンドをmysqlに打ち込んだがそれでもダメだった。

mysql> set character set utf8;
ERROR 1115: Unknown character set: 'utf8'

どうやら自分のマシンでは、utf8は使えないようだ。以下のコマンドを打ち込むと自分のマシンのmysqlで使用可能な文字コードが確認できる。

mysql> show variables like 'character_set_%';
+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value |
+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| character_sets | latin1 big5 cp1251 cp1257 croat czech danish dec8 dos estonia euc_kr gb2312 gbk german1 greek hebrew hp8 hungarian koi8_ru koi8_ukr latin2 latin5 swe7 usa7 win1250 win1251 win1251ukr ujis sjis tis620 |
+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+


この中にutf8が含まれていなかったので、ujis(EUC_JP)を用いることにした。


# vi /etc/my.cnf
[mysqld]
default-character-set=ujis

[mysql]
default-character-set=ujis


MySQLを再起動し、statusを確認。


mysql> status
--------------
mysql Ver 11.18 Distrib 3.23.58, for redhat-linux-gnu (i386)

Connection id: 6
Current database:
Current user: root@localhost
Current pager: stdout
Using outfile: ''
Server version: 3.23.58
Protocol version: 10
Connection: Localhost via UNIX socket
Client characterset: ujis
Server characterset: ujis
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 31 min 4 sec

Threads: 1 Questions: 99 Slow queries: 0 Opens: 24 Flush tables: 1 Open tables: 18 Queries per second avg: 0.053
--------------



【参考】
http://cise.edu.mie-u.ac.jp/~okumura/linux/?MySQL
バックスラッシュ(\,5C)が文字化けする

No comments:

Post a Comment