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

10.1.3 文字セットと照合順序の指定

サーバー、データベース、テーブル、カラムの 4 つのレベルで、文字セットと照合順序のデフォルト設定が用意されています。以降のセクションの説明は複雑に思われますが、実際、複数レベルのデフォルト設定によって自然で明白な結果が得られることがわかっています。

CHARACTER SET は文字セットを指定する句で使用します。CHARSET は、CHARACTER SET のシノニムとして使用できます。

文字セットの問題は、データストレージだけではなく、クライアントプログラムと MySQL Server との通信にも影響を与えます。デフォルトと異なる文字セットを使用してクライアントプログラムとサーバー間の通信を行う場合、どの文字セットを使用するのかを示す必要があります。たとえば、utf8 Unicode 文字セットを使用するには、サーバー接続後に次のステートメントを発行してください。

SET NAMES 'utf8';


User Comments
  Posted by Yahoo Serious on June 13, 2006
Note that if you specify the same default character set on a lower level but without a default collation, the default collation will be the one of the character set, not the one of the higher level. So this overrides your previous default collation.

Suppose you have specified a default character set for your database, e.g. 'latin1', with a (deviating) default collation ('latin1_bin'). Now you create a table with default character set 'latin1', but no default collation. The default collation of the table will now be the one of the character set ('latin1_swedish_ci'), and not the one you used on the higher level as default collation for the same character set ('latin1_bin'). (Established in MySQL 4.1)

  Posted by time e.less on October 14, 2009
Please add the information about skip-character-set-client-handshake into every page that references server character set and collation.

I'm amazed this startup option is hidden so deep in the documentation, since it seems like many administrators who specify alternate character sets on startup would want the clients to use the server character sets when possible.

Here's an example for the [mysqld] section of your my.cnf:

> skip-character-set-client-handshake
> collation_server=utf8_unicode_ci
> character_set_server=utf8

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