mysqld
は次の言語でエラーメッセージを提供できます: チェコ語, オラ
ンダ語, 英語(デフォルト), フランス語, ドイツ語, ノルウェー語, 新ノルウェー
語,ポーランド語, ポルトガル語, スペイン語そしてスウェーデン語。
ある言語で mysqld
を開始するためには --language=lang
また
は -L lang
スイッチの一つを使います:
mysqld --language swedish
または
mysqld --language /usr/local/share/swedish
言語名は全て小文字であることに注意してください。
言語ファイルは(デフォルトでは)次の場所にあります。 `mysql_base_dir/share/LANGUAGE/'.
エラーメッセージファイルを更新したい場合は、errmsg.txt ファイルを編集し、
errmsg.sys ファイルを生成するために comp_err errmsg.txt
errmsg.sys
を実行すべきです。
デフォルトでは、MySQL は ISO8859-1 (Latin1) 文字セットを使用し ます。これは USA と西ヨーロッパで使用される文字セットです。
文字セットは名前として許される文字と、ORDER BY
と GROUP BY
コマンドによってソートされる方法を決定します。
これは、コンパイル時に configure のスイッチ
--with-charset=charset
によって変更できます。 「素早いインストールの概要」節参照 。
MySQL に他の文字セットを追加したい場合は、次を行う必要があります:
mysql_source_directory/strings/ctype-$CHARSET_NAME.c
を
作成します。
to_lower['A'] should contain 'a' to_upper['a'] should contain 'A'sort_order[] は文字がどのようにソートされるべきかのマップです。多くのセッ トでは、これは to_upper と同じです (ケース非依存ソート)。MySQL は sort_order[character] の値を元に文字をソートします。 ctype[] は各文字を説明するビットの配列です。 m_ctype.h に次の定義を見ることができます:
#define _U 01 /* Upper case */ #define _L 02 /* Lower case */ #define _N 04 /* Numeral (digit) */ #define _S 010 /* Spacing character */ #define _P 020 /* Punctuation */ #define _C 040 /* Control character */ #define _B 0100 /* Blank */ #define _X 0200 /* heXadecimal digit */例えば ctype['A'] は次の値を含むべきです:
_U + _X = 0201
configure
.in 内の CHARSETS_AVAILABLE
リスト
に追加します。
複数バイト文字セットを作る場合は、_MB マクロを使用できます。 `strings/m_ctype.h.in' に次を追加します:
#define MY_CHARSET_<C> X #if MY_CHARSET_CURRENT == MY_CHARSET_<C> #define USE_MB #define USE_MB_IDENT #define ismbchar(p, end) (...) #define ismbhead(c) (...) #define mbcharlen(c) (...) #define MBMAXLEN N #endif
MY_CHARSET_<C> | ユニーク値 |
USE_MB | この文字セットは MB 文字を持つ。 |
USE_MB_IDENT: | MB 文字を識別子として使用する。(オプション) |
ismbchar(p, e) | MB 文字でない場合は 0 を返し、MB 文字の場合は文字サイズを返す。 (char*)p から (char*)e-1 までを検査する。 |
ismbhead(c) | c が MB 文字の最初の文字か否か。 |
mbcharlen(c) | c が MB 文字の最初の文字の場合の文字サイズ |
MBMAXLEN | 一文字の最大サイズ |
--log-update=file_name
スイッチで開始されると、mysqld
はデー
タを更新する全ての SQL コマンドについてログファイルを作成します。この結
果は、名前 file_name.#
(# は refresh 毎に増加する数値です) のファ
イル内に置かれます。ファイル名を与えなかった場合は、現在のホスト名が使用
されます。
ログは、実際に更新されたデータのステートメントだけを書くため、スマートで
す。そして行が見つからなかった WHERE
を伴った UPDATE
また
は DELETE
はログに書かれません。項目を、それが前に持っていた値に
更新する UPDATE
もスキップされます。
更新ログに従ってデータベースを更新したい場合は、次を行います:
cat file-name.* | mysql
現在、テーブルは OS のファイルサイズに制限されています。Linux では現在の 制限は 2G です。Solaris 2.5.1 では制限は 4G で、Solaris 2.6 では制限は 1000G になっています。4G 以上を得るためには、MySQL にいくつかの 変更が要求され、これは Todo 上にあります。 「List of things we want to add to MySQL in the future (The TODO).」節参照 。
大きなテーブルが read_only になる場合は、pack_isam( 「MySQL の圧縮された読み込み専用テーブルジェネレータ」節参照 )を使っ て多くのテーブルをマージと圧縮で一つにできます。pack_isam は通常、テーブ ルを少なくとも 50% に圧縮するので、さらに大きなテーブルを持つことができ ます。
他の解決法は MERGE ライブラリを含めることができます。これは同一のテーブ ルを一つに収集するよう操作できます。現在 MERGE は、インデックスをサポー トしていないため、テーブルの収集を走査するためだけに使用できます。我々は 近い将来これにインデックスを追加します。この場合の同一は、全てのテーブル が同じ項目情報で生成されたことを意味します。
Go to the first, previous, next, last section, table of contents.