システム変数の用途

MySQLの文字コード関連のシステム変数について。

character_set_system
  "indentifiers" (テーブル名とかカラム名?) を格納するのに使われる。
  utf8で 固定。
character_set_server
  character_set_database のデフォルト値に影響する。
character_set_database
  CREATE DATABASE で文字コードが指定されなかった場合、database の文字コー
  ドはこれになる。
  character_set_connection の値に影響する。(後述)
character_set_client
  クライアントから渡された SQL 文はこの文字コードであると解釈される。
character_set_connection
  キャラクタセットイントロデューサ (例えば『_ujis'ほげ'』)が省略された
  SQL 文中の文字列リテラルはこの文字コードであると解釈される。
character_set_results
  サーバーがクライアントに返す結果をこの文字コードに変換する。
  この変数を NULL にセットすると、結果に対する文字コード変換をしないよ
  うにできる。
これらのシステム変数を変更する際は
mysql>SET character_set_client=ujis ←ujisにする場合
などがある。
個別に SET character_set_client charset_name などとする以外の制御方法。
SET CHARACTER SET charset_name
  → cs_client     charset_name
     cs_connection (cs_databaseの値)
     cs_results    charset_name
  SET CHARACTER SET charset_name を実行すると、cs_client と
  cs_connection の値が charset_name になり、cs_results の値が
  cs_database の値と同じになる。
SET NAMES 'charset_name'
  → cs_client     charset_name
     cs_connection charset_name
     cs_results    charset_name
mysql --defalt-character-set charset_name
  → cs_client     charset_name
     cs_connection charset_name
     cs_results    charset_name
mysqld --defalt-character-set charset_name
  → cs_database   charset_name
     cs_server     charset_name

http://www.mysql.gr.jp/mysqlml/mysql/msg/9586

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です