ぶろぐ

日記です

mysql5.5文字コード設定


/etc/my.cnfを変更

[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
# 5.1の場合
# default-character-set=utf8

文字コード確認コマンド

全体の文字コード確認

show variables like 'character_set%';

データベースの文字コード確認

show create database db_name

mysql> show create database blog;
+----------+---------------------------------------------------------------+
| Database | Create Database                                               |
+----------+---------------------------------------------------------------+
| blog     | CREATE DATABASE `blog` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+---------------------------------------------------------------+
1 row in set (0.00 sec)
文字コードを指定してデータベース作成

create database db_bname character set utf8;
my.cnfをいじれない環境ならこれで

初期状態

mysql> show variables like 'character_set%';
+--------------------------+----------------------------+
| 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     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

設定後

mysql> show variables like 'character_set%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

トラブルシューティングガイド

切り分けとしては、

ターミナルで見て文字化けしないならプログラムが悪い可能性が大