MySQL 8.0 リファレンスマニュアル


10.3.2 サーバー文字セットおよび照合順序

MySQL Server にはサーバー文字セットとサーバー照合順序があります。 デフォルトでは、これらは utf8mb4 および utf8mb4_0900_ai_ci ですが、サーバーの起動時にコマンドラインまたはオプションファイルで明示的に設定し、実行時に変更できます。

サーバー文字セットおよび照合順序は最初、mysqld の起動時に使用するオプションに依存します。 文字セットに --character-set-server を使用できます。 これに加え、照合順序に --collation-server を追加できます。 文字セットを指定しない場合は、--character-set-server=utf8mb4 と同じです。 文字セット (utf8mb4 など) のみを指定し、照合順序を指定しない場合は、utf8mb4_0900_ai_ciutf8mb4 のデフォルト照合順序であるため、--character-set-server=utf8mb4 --collation-server=utf8mb4_0900_ai_ci と同じです。 したがって、次の 3 つのコマンドを実行した結果はいずれも同じになります。

mysqld
mysqld --character-set-server=utf8mb4
mysqld --character-set-server=utf8mb4 \
  --collation-server=utf8mb4_0900_ai_ci

設定を変更する手段の 1 つは再コンパイルです。 ソースから構築するときに、デフォルトのサーバー文字セットおよび照合順序を変更するには、CMakeDEFAULT_CHARSET および DEFAULT_COLLATION オプションを使用します。 例:

cmake . -DDEFAULT_CHARSET=latin1

または:

cmake . -DDEFAULT_CHARSET=latin1 \
  -DDEFAULT_COLLATION=latin1_german1_ci

mysqldCMake の両方は、文字セットと照合順序の組み合わせが有効であることを検証します。 組み合わせが有効でない場合、各プログラムによってエラーメッセージが表示され、強制終了されます。

サーバー文字セットおよび照合順序は、データベース文字セットおよび照合順序が CREATE DATABASE ステートメントで指定されていない場合にデフォルト値として使用されます。 これらにほかの用途はありません。

現在のサーバー文字セットおよび照合順序は、character_set_server および collation_server システム変数の値で判別できます。 これらの変数は実行時に変更できます。


関連キーワード:  文字, セット, 照合, 順序, utf, サーバー, server, サポート, character, 追加