IT二刀流にはプロモーションが含まれています。

MySQLの文字コード関連調査に使用できるコマンド

MYSQLロゴ

MySQLの文字コードなどを調査するのに便利なコマンドです。

「MySQLで文字化けする」なんて時に使えるかもしれません…

文字コードをさくっと確認

mysql> status;
--------------
mysql  Ver 14.14 Distrib 5.6.43, for Win64 (x86_64)

Connection id:          44
Current database:
Current user:           root@localhost
SSL:                    Not in use
Using delimiter:        ;
Server version:         5.6.43-log MySQL Community Server (GPL)
Protocol version:       10
Connection:             localhost via TCP/IP
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    cp932
Conn.  characterset:    cp932
TCP port:               3306
Uptime:                 21 min 41 sec

Server characterset: MySQLサーバーの文字コード
Db characterset: DB作成時の文字コード
Client characterset: クライアントの文字コード
Conn. characterset: コネクションの文字コード

環境変数から確認

mysql> SHOW VARIABLES like "char%";
+--------------------------+---------------------------+
| Variable_name            | Value                     |
+--------------------------+---------------------------+
| character_set_client     | cp932                     |
| character_set_connection | cp932                     |
| character_set_database   | utf8                      |
| character_set_filesystem | binary                    |
| character_set_results    | cp932                     |
| character_set_server     | utf8                      |
| character_set_system     | utf8                      |
| character_sets_dir       | C:\MySQL\share\charsets\  |
+--------------------------+---------------------------+

character_set_client:クライアント側の文字コード
character_set_connection:クライアントから受けたSQLを変換
character_set_database:データベースで使用される文字
character_set_filesystem:ファイルシステムの文字セット
character_set_results:クライアントに返す時の文字コード
character_set_server:サーバーのデフォルト文字コード
character_set_system:識別子を格納するために使用される文字コード
character_sets_dir:文字セットがインストールされている場所

コレクション(照合)を確認

mysql> SHOW VARIABLES like "coll%";
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | cp932_japanese_ci |
| collation_database   | utf8_general_ci   |
| collation_server     | utf8_general_ci   |
+----------------------+-------------------+

collation_connection:接続文字セットの照合順序
collation_database:デフォルトデータベースで使用される照合
collation_server:サーバーのデフォルトの照合順序

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

既に作成してあるデータベースの文字コードを確認する。

mysql> SHOW CREATE DATABASE test;
+----------+---------------------------------------------------------------+
| Database | Create Database                                               |
+----------+---------------------------------------------------------------+
| test     | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+---------------------------------------------------------------+

データベース名testの文字コードはutf8であることがわかる。

ちなみに、DB作成時に文字コードを指定するには「CHARCTER SET」を付ける。

CREATE DATABASE db1 CHARACTER SET utf8;

テーブルの文字コード確認

既に作成してあるテーブルの文字コードを確認する。

mysql> SHOW CREATE TABLE test;
+-------+-----------------------------+
| Table | Create Table                |
+-------+-----------------------------+
| test  | CREATE TABLE `test` (
  `no` int(11) DEFAULT '0',
  `name` varbinary(100) DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+-----------------------------+

テーブル名testの文字コードはCHARSET=utf8でutf8であることがわかる。

まとめ

MySQLの文字コードはいろんなところにあります。

文字化けが起こったら1つ1つどうなっているか調べなくてはいけません。

mysql8.0.1からはutf8mb4がデフォルトになったようです。

ITエンジニアの転職

いまITエンジニアの需要は急拡大しています。
ITエンジニアの経験があれば好条件で転職することも難しくありません。

マイナビクリエイター

☆ 支援ご協力のお願い ☆

この記事が「役に立った」と感じたら

投げ銭の「OFUSEで応援」で支援して頂けたら励みになります!

OFUSEのやり方(説明)

関連記事
記事特集