LoginSignup
159
130

More than 3 years have passed since last update.

MySQL 文字コード確認

Last updated at Posted at 2017-01-09

1.「クライアント」と「サーバ」の文字コードを確認

文字コード設定は、クライアントとサーバそれぞれ持っている

  • 確認コマンド
show variables like '%char%';
結果
mysql> show variables like '%char%';
+--------------------------+------------------------------
| 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/charsets/  |
+--------------------------+-----------------------------+
項目名 対象(client/server) 説明
character_set_client client クライアントがサーバにクエリを送信する際に使用
character_set_results server サーバがクライアントにクエリ結果を送る時に使用
character_set_connection client クライアントが送ったクエリをサーバが解析する際に使用
character_set_database server サーバのデフォルトキャラクタセット。LOAD DATA INFILE文はこの指定が使用される。mysql起動時にcharacter_set_serverの値が適用される。
character_set_server server サービス起動時のデフォルトキャラクタセット
character_set_system - ファイル名をこのキャラクタセットで扱う
character_sets_dir - キャラクタセットを扱う上で必須となるファイルを配置しているディレクトリ

2.「データベース」「テーブル」「カラム」単位で文字コードを確認

  • 確認コマンド

-- databaseの文字コード確認
show create database [database_name]

-- tableの文字コード確認
show create table [table_name];

サーバ側の文字コードセットは、データベース、テーブル、カラム単位で指定可能。小さな単位での指定が有効となる。ここでいうとカラムに指定した文字コードが優先されるので、文字化けなどの調査を行う際は、テーブル定義も確認する必要がある。

159
130
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
159
130