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
コメントを残す