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の日本語文字化けへの対応になります