Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.2Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


10.5 文字セットの構成

デフォルトのサーバー文字セットおよび照合順序は、サーバー起動時に、--character-set-server オプションと --collation-server オプションで変更できます。照合順序は、デフォルト文字セットの正当な照合順序である必要があります。(各文字列セットに使用できる照合順序を特定するには、SHOW COLLATION ステートメントを使用します。)セクション5.1.3「サーバーコマンドオプション」を参照してください。

バイナリにコンパイルされない文字セットを使用しようとすると、次の問題が生じることがあります。

  • 文字セットが格納される場所 (通常、MySQL インストールディレクトリ下の share/mysql/charsets または share/charsets ディレクトリ) を判断するときに、プログラムが不正なパスを使用します。これは、該当プログラムを実行するときに --character-sets-dir オプションを使用することによって修正できます。たとえば、MySQL クライアントプログラムで使用されるディレクトリを指定するには、オプションファイルの [client] グループに記述します。ここに挙げる例は、それぞれ Unix または Windows の場合に設定がどのようになるかを示します。

    [client]
    character-sets-dir=/usr/local/mysql/share/mysql/charsets
    
    [client]
    character-sets-dir="C:/Program Files/MySQL/MySQL Server 5.6/share/charsets"
  • 文字セットは、動的にロードできない複雑な文字セットです。この場合、文字セットのサポートを使用してプログラムを再コンパイルする必要があります。

    Unicode 文字セットの場合、LDML 表記を使用することによって、再コンパイルせずに照合順序を定義できます。セクション10.4.4「Unicode 文字セットへの UCA 照合順序の追加」を参照してください。

  • 文字セットは動的な文字セットですが、その構成ファイルがありません。この場合、新しい MySQL 配布から文字セットの構成ファイルをインストールする必要があります。

  • 文字セットインデックスファイルに文字セットの名前が含まれていない場合、プログラムはエラーメッセージを表示します。このファイルの名前は Index.xml で、メッセージは次のとおりです。

    Character set 'charset_name' is not a compiled character set and is not
    specified in the '/usr/share/mysql/charsets/Index.xml' file

    この問題を解決するには、新しいインデックスファイルを取得するか、欠落している文字セットの名前を手動で現在のファイルに追加する必要があります。

次のようにしてクライアントプログラムに強制的に特定の文字セットを使用させることができます。

[client]
default-character-set=charset_name

これは通常は不要です。ただし、character_set_systemcharacter_set_server または character_set_client と異なり、(データベースオブジェクト識別子またはカラム値、あるいはその両方として) 手動で文字を入力した場合、これらの文字はクライアントからの出力に間違って表示されたり、出力自体が間違って書式設定されたりすることがあります。このような場合、--default-character-set=system_character_set を使用して MySQL クライアントを起動し、システム文字セットに一致するようにクライアント文字セットを設定すると、問題が修正されます。

MyISAM テーブルでは、myisamchk -dvv tbl_name を使用するとテーブルの文字セットの名前および数値を確認できます。


User Comments
Sign Up Login You must be logged in to post a comment.