ysku's blog

ウェブ・無線通信・組み込みとか

MySQLへの日本語入力(文字化け対応)【MySQL 5.1】

MySQLで日本語の文字化け問題で詰まってしまったためメモ
具体的には、insertで日本語を入力する際に文字化けしてしまうというもの

環境はMySQLが5.1、サーバはCentOS release 6.5 (final)を使用しています

MySQL文字コードの確認をします
ログインした後、以下を実行

mysql> show variables like 'char%';

私の場合、このようになっていました

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

まず、my.cnfの設定
以下のコマンドでmy.cnfを書き換えます

 # vi /etc/my.cnf

書き換える内容は以下です

[mysqld]の部分

character-set-server = utf8

これで

character_set_database        utf8
character_set_server            utf8

となります

[mysql]の部分(ない場合は書き加えます)

default-character-set = utf8

これで

character_set_client             utf8
character_set_connection     utf8
character_set_results           utf8

となります

以上の変更を加えて一度再起動します

 # /etc/init.d/mysqld restart

次にデータベースとテーブルの文字コードを変更します
mysqlにログインした後、以下でデータベースの文字コードを行えます

mysql> alter database [データベース名] character set utf8;

テーブルの文字コードの変換は以下のコマンドです

mysql> alter table [テーブル名] charset = utf8;

以上が、MySQLの日本語文字化けへの対応になります