PGメモ

非エンジニアの記録

mysqlのインポートで文字化けする

mysqlで文字化けする。

ずっとutf8でやっていたが、eucの環境を構築しないといけなくなったのでやりました。

まずはデータベースをUTF8からeucに設定変更

$ vim /etc/my.cnf

utf8の所をujisに。

default-character-set=ujis
skip-character-set-client-handshake
character-set-server = ujis
collation-server = ujis_japanese_ci

再起動

$ service mysqld restart

ujisでDBを作る

mysql > create database hoge default character set 'ujis';

いざインポート -> 文字化け
なんでだ・・

インポートの時に文字コード指定してみる

$ mysql -ufoo -p hoge default character set ujis < var.sql

だめでした
色々調べた結果、テーブルの文字コードがlatin1になっていた。
ダンプのテーブルに指定されたいた個所をすべてujisに置換。

大成功。
めでたしめでたし。
ちなみにeucって言ってるのにujisと書いてますが
ujisは日本語EUCの別名です。

おまけ
・DBの文字コードを調べる

mysql > show variables like 'character%';

・テーブルの文字コードを調べる

show create table table_name;\G