MySQL 「DEFAULT_CHARACTER_SET」 の変更
mysqlでERROR 1366 (HY000): Incorrect string value が発生。
日本語が入ったレコードを登録しようとするとエラーが発生する。
上記エラーの原因を調査すると、文字コードエラーのようだ。
データベースの設定を確認。
$ mysql -umysqluser -p mysql> status -------------------------------------- Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn characterset: utf8 --------------------------------------
ここの charactereset は良さそう。
次は対象のデータベースをチェック。
mysql> use databasename mysql> status -------------------------------------- Server characterset: utf8 Db characterset: latin1 Client characterset: utf8 Conn characterset: utf8 --------------------------------------
Dbの設定が怪しい。。。
MySQL の characterset を変更。
# my.cnf を編集。
-------------------------------------- [client] default-character-set=utf8 [mysqldump] default-character-set=utf8 [mysql] default-character-set=utf8 --------------------------------------
MySQL を再起動して設定を反映します。
あとは既存のデータベースの characterset を変更する。
mysql> alter database databasename default character set utf8 COLLATE utf8_general_ci;
すると、
mysql> status -------------------------------------- Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn characterset: utf8 --------------------------------------
変更されました。
table は一度、drop table .. してから作り直したら無事に日本語を登録することができました。