デフォルトでは、MySQL はスウェーデン語およびフィンランド語に従ってソートされる ISO-8859-1(Latin1)キャラクタセットを使用します。これは、米国と西ヨーロッパに適したキャラクタセットです。
標準 MySQL
バイナリは、--with-extra-charsets=complex
でコンパイルされます。これにより、すべての標準プログラムにコードが追加され、バイナリ内で
latin1
とすべてのマルチバイトキャラクタセットを処理できるようになります。他のキャラクタセットが必要な場合は、キャラクタセット定義ファイルからロードします。
キャラクタセットにより、名前に使用できる文字と、SELECT
ステートメントの ORDER BY
節および GROUP BY
節での文字列のソート方法が決定します。
サーバ起動時に --default-character-set
オプションでキャラクタセットを変更できます。利用可能なキャラクタセットは、--with-charset=charset
オプションと --with-extra-charsets=
list-of-charset | complex | all | none
オプションが configure
になっているかどうか、および
SHAREDIR/charsets/Index
に含まれているキャラクタセット設定ファイルに依存します。
See 項2.3.3. 「一般的な configure
オプション」。
MySQL
の実行中にキャラクタセットを変更した場合(ソート順序が変わる可能性もあります)、すべてのテーブルで
myisamchk -r -q --set-character-set=charset
を実行する必要があります。このことを行わない場合、インデックスが正しい順序でなくなる可能性があります。
クライアントが MySQL サーバに接続すると、サーバはデフォルトのキャラクタセットをクライアントに送ります。クライアントは、この接続用としてそのキャラクタセットに切り替えます。
SQL
クエリの文字列をエスケープする場合は、mysql_real_escape_string()
を使用してください。最初のパラメータとして
MYSQL
接続ハンドルを使用すること以外、mysql_real_escape_string()
は旧 mysql_escape_string()
関数と同じです。
サーバのインストールパス以外のパスでクライアントがコンパイルされており、MySQL をコンフィギャしたユーザがすべてのキャラクタセットを MySQL バイナリに組み込んでいない場合、サーバがクライアントとは異なるキャラクタセットで実行しているときに必要となる追加キャラクタセットの場所を、クライアントに指定する必要があります。
これは、MySQL オプション設定ファイルで指定することができます。
[client] character-sets-dir=/usr/local/mysql/share/mysql/charsets
ここで、パスは、動的 MySQL キャラクタセットが保存されているディレクトリを指します。
以下のように、クライアントに特定のキャラクタセットの使用を強制することも可能です。
[client] default-character-set=character-set-name
しかし、通常は必要ありません。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.