mysqlコマンドで、EUC-JPのデータをインポートしようとした際に、 Incorrect string value が発生して失敗した。
以下の手順で直ったようなので、メモしておく。
- ターミナルから以下で、空のファイルを作成する
touch /usr/local/etc/my.cnf
- 作成したmy.cnfをテキストエディタで開いて、以下のコードを入力。参考: web帳 | CentOS MySQL5.6 文字コード設定
[client] default-character-set=eucjpms [mysqld] skip-character-set-client-handshake character-set-server = eucjpms collation-server = eucjpms_japanese_ci init-connect = SET NAMES eucjpms [mysqldump] default-character-set=eucjpms [mysql] default-character-set=eucjpms
- mysql.server restartで再起動する
# 現在の文字コードの確認方法
- mysqlやphpMyAdminのSQLで以下を実行する
show variables like 'char%';
- phpMyAdminでは変更が確認できない場合がある。phpMyAdminの照会順が原因の可能性もある。こちらの設定を変更する必要があるかもしれないが、さしあたり以上の手順で直った。
# 注意
テーブル作成のSQL内に書いてある「/*!40101 SET NAMES utf8 */;」は書き換えない。これは、このファイルのエンコードを示している。エクスポートしたSQLはutf8形式なので、ここをeucjsmsに書き換えてしまうと日本語のデフォルト値なのでエラーが発生する