気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

MySQLの文字コード変更

MySQLで文字化けを防ぐには以下の設定を統一しておく

・Database の文字コード
・テーブルの文字コード
・カラムの文字コード
・クライアントの文字コード


<DBの文字コード確認>
show variables like "chara%";

Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database latin1
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/


<DBの文字コード変換コマンド>
alter database appdb character set utf8;

<テーブルの文字コード確認>
show create table <テーブル名> \G;

CREATE TABLE `TABLE_NAME` (
`ID` char(8) CHARACTER SET latin1 NOT NULL COMMENT 'ID',
`REG_USR` varchar(6) CHARACTER SET latin1 NOT NULL COMMENT '登録者',
`REG_SYS_TIME` datetime NOT NULL COMMENT '登録日時(システム日時)',
`UPD_USR` varchar(6) CHARACTER SET latin1 NOT NULL COMMENT '更新者',
`UPD_TIME` datetime NOT NULL COMMENT '更新日時(システム日時)',
PRIMARY KEY (`ID`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8

テーブルの文字コードとカラムの文字コードが異なる場合は
IDのようにカラムの定義内に「CHARACTER SET <文字コード>」が表示される


<テーブルの文字コードの変更>
ALTER TABLE <テーブル名> CHARSET=utf8;

MySQL データベースの文字コードを後から変換する
http://blog.livedoor.jp/kumagai_nori/archives/52255224.html

MySQL文字コードにハマる
http://sugamasao.hatenablog.com/entry/20070906/1189102573