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>mysqldshell>mysqld --character-set-server=latin1shell>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のシステム変数値で決定されます。これらの変数はランタイムで変更可能です。
