MySQLで文字コードを確認する

■サーバの文字コードは、configure時に–with-charset=utf8 とすることで、デフォルトUTF-8に設定できる。

■DB作成後、以下のコマンドで確認できる。

mysql> show create database hogedb\G
*************************** 1. row ***************************
Database: hogedb
Create Database: CREATE DATABASE `hogedb` /*!40100 DEFAULT CHARACTER SET utf8
*/
1 row in set (0.01 sec)

■MySQLのクライアントの文字コードがどうなっているかを調べるには、一旦MySQLのコンソールにログインし、statusコマンドを実行する。

mysql> status
--------------
mysql Ver 14.14 Distrib 5.1.44, for pc-linux-gnu (i686) using EditLine
wrapper

Connection id: 1
Current database: hogedb
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.1.44 Source distribution
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /tmp/mysql.sock
Uptime: 2 min 38 sec

Threads: 1 Questions: 5 Slow queries: 0 Opens: 17 Flush tables: 1 Open
tables: 4 Queries per second avg: 0.31
--------------

■文字コード関連のシステム変数からも、文字コード設定状況を確認できる。

mysql> show variables like '%character%';
+--------------------------+----------------------------------------+
| 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/local/mysql/share/mysql/charsets/ |
+--------------------------+----------------------------------------+
8 rows in set (0.00 sec)

■豆知識: rpmとかでMySQLを導入すると、文字コードはデフォルトlatin1になる。