Subscribed unsubscribe Subscribe Subscribe

MySQLの文字コード

色々と苦戦しながらMySQL文字コード設定を変更。
参考にするのはこういったページ。
http://wota.jp/ac/?date=20061011
http://www.revulo.com/blog/20060518.html
など。
ポイントとしては、my.cnfを編集して

[mysqld]
default-character-set=utf8
skip-character-set-client-handshake

とかを書き足す。
2行目の"skip-character-set-client-handshake"はどういう効果なんだろう?調べて分かったらあとで書く。

で、my.cnf編集後にMySQLを再起動すれば基本的にデフォルトで文字コードはutf8になっているはず。
確かめる方法は、

mysql> show variables like 'char%'
mysql> status
mysql> show create table <table名>

など。

しかし既に他の文字コードで作成してしまったDBの文字コードを変更する方法についてはあまり良い方法がなさそう。
とにかく現存するデータをmysqldumpで取得して、変換をかけて新しく作り直したDBに入れる、ということになるようだ。
まだ成功できていないのでなんともいえない。

上手く文字コードが設定できれば、VARCHAR()のサイズはバイト数ではなく文字数として扱われるはず。