MySQLサーバにはサーバキャラクタセットとサーバ照合順序があります。サーバキャラクタセットとサーバ照合順序は、サーバ起動時に設定でき、ランタイムで変更できます。
サーバのキャラクタセットと照合順序は、mysqldの起動時に使用するオプションに依存します。--character-set-server
をキャラクタセットに対して使用でき、--collation-server
を照合順序に対して追加することもできます。キャラクタセットを指定しないのは、--character-set-server=latin1
を指定した場合と同じです。キャラクタセット(例えばlatin1
)のみを指定して照合順序を指定しないのは、--character-set-server=latin1
--collation-server=latin1_swedish_ci
を指定した場合と同じです。これはlatin1_swedish_ci
がlatin1
のデフォルト照合順序であるためです。したがって、以下の
3
つのコマンドを実行すると、いずれも同じ結果になります。
shell>mysqld
shell>mysqld --character-set-server=latin1
shell>mysqld --character-set-server=latin1 \
--collation-server=latin1_swedish_ci
設定を変更する手段の 1
つは再コンパイルです。ソースからのビルド時にデフォルトのサーバキャラクタセットと照合順序を変更するには、--with-charset
と--with-collation
をconfigureの引数として使用してください。例:
shell> ./configure --with-charset=latin1
または
shell>./configure --with-charset=latin1 \
--with-collation=latin1_german1_ci
mysqldとconfigureでは、キャラクタセットと照合順序の組み合わせが有効かどうかチェックされます。組み合わせが有効でない場合、各プログラムによってエラーメッセージが表示され、強制終了されます。
最新のサーバキャラクタセットと照合順序は、character_set_server
およびcollation_server
のシステム変数値で決定されます。これらの変数はランタイムで変更可能です。