Mysqlの文字化けを防ぐ


以前、開発用じゃなく勉強用に適当にテーブルを作ったら ????? という感じで文字化けされてしまいました。


ということで、実際に文字コードを調べてみると

mysql> status
--------------
mysql  Ver 14.14 Distrib 5.5.15, for osx10.6 (i386) using readline 5.1

Connection id:		9
Current database:	
Current user:		root@localhost
SSL:			Not in use
Current pager:		stdout
Using outfile:		''
Using delimiter:	;
Server version:		5.5.15-log MySQL Community Server (GPL)
Protocol version:	10
Connection:		Localhost via UNIX socket
Server characterset:	latin1
Db     characterset:	latin1
Client characterset:	utf8
Conn.  characterset:	utf8
UNIX socket:		/tmp/mysql.sock
Uptime:			21 sec

Threads: 1  Questions: 14  Slow queries: 0  Opens: 33  Flush tables: 1  Open tables: 26  Queries per second avg: 0.666
--------------

こんな感じで、ところどころlatin1になってたので、文字コードの設定をutf8に変えました。


ちなみに文字コードを調べる方法はこれでもいけます↓

mysql> show variables like 'character_set%';

文字コードの設定方法

/etc/my.cnfに以下の記述を加える。


[client]
default-character-set = utf8

[mysqld]
character-set-server=utf8


あとは再起動すればいいみたい。

停止


$ sudo /usr/local/mysql/support-files/mysql.server stop

起動


$ sudo /usr/local/mysql/support-files/mysql.server start



参考
http://ext.omo3.com/linux/mysql_character_set.html
http://blog.srengine.com/2008/03/mysql-utf-8.html
http://masutaka.net/chalow/2009-10-10-2.html