通常、mysqld
オプションはオプション設定ファイルから管理してください。
See 項4.1.2. 「my.cnf
オプション設定ファイル」。
mysqld
と mysqld.server
は mysqld
グループと
server
グループからオプションを読み込みます。
mysqld_safe
は
mysqld
、server
、mysqld_safe
、safe_mysqld
の各グループからオプションを読み込みます。
組み込み MySQL
サーバは通常、server
、embedded
、および
xxxxx_SERVER
からオプションを読み込みます。ここで、xxxxx
はアプリケーションの名前です。
mysqld
には、多くのコマンドラインオプションがあります。以下、一般的なコマンドラインオプションについて説明します。
完全なオプション一覧を参照するには、mysqld
--help
を実行してください。
レプリケーション用のオプションについては、別のセクションで説明します。項4.11.6. 「レプリケーションスタートアップオプション」
を参照してください。
--ansi
MySQL 構文ではなく、SQL-99 構文を使用する。 See 項1.8.2. 「ANSI モードでの MySQL の実行」。
-b, --basedir=path
インストールディレクトリのパス。すべてのパスは通常、このパスからの相対パスで解決される。
--big-tables
すべてのテンポラリセットをファイルに保存することにより、大きな結果セットを可能にする。これによりほとんどの 'table full' エラーが解決されるが、メモリ内テーブルだけで事足りるクエリの実行速度も遅くなる。MySQL バージョン 3.23.2 以降、小さなテンポラリテーブルの場合はメモリを使用し、必要に応じて自動的にディスクテーブルに切り替わるようになっている。
--bind-address=IP
バインドする IP アドレス。
--console
--log-error
が指定されている場合でも、stderr/stdout
にエラーログメッセージを書き込む。このオプションを使用した場合、Windows
では mysqld
によりコンソール画面が開かれたままになる。
--character-sets-dir=path
キャラクタセットが格納されているディレクトリ。 See 項4.7.1. 「データおよびソート用キャラクタセット」。
--chroot=path
起動時に chroot 環境に mysqld
デーモンを配置する。MySQL 4.0
以降の推奨セキュリティ設定(MySQL 3.23
では、完全に閉じた chroot
ジェイルを提供できない)。
ただし、LOAD DATA INFILE
と
SELECT ... INTO OUTFILE
に制約が加わる。
--core-file
mysqld
が異常終了した場合に、コアファイルを作成する。システムによっては、mysqld_safe
に --core-file-size
を指定することも必要になる。 See
項4.8.2. 「mysqld_safe
(mysqld
のラッパ)」。 注意:
--user
オプションも使用している場合、Solaris
などシステムではコアファイルを作成できない。
-h, --datadir=path
データベースルートのパス。
--debug[...]=
MySQL を --with-debug
でコンフィギャしている場合、このオプションを使用して
mysqld
の動作を示すトレースファイルを取得できる。
See 項E.1.2. 「トレースファイルの作成」。
--default-character-set=charset
デフォルトのキャラクタセットを設定する。 See 項4.7.1. 「データおよびソート用キャラクタセット」。
--default-table-type=type
デフォルトのテーブル型を設定する。 See 章 7. MySQL のテーブル型。
--delay-key-write[= OFF | ON | ALL]
MyISAM で、DELAYED KEYS
をどのように使用するか指定する。 See
項5.5.2. 「サーバパラメータのチューニング」。
--delay-key-write-for-all-tables(MySQL 4.0.3
では、--delay-key-write=ALL を使用)
すべての MyISAM
テーブルにおいて、書き込み間のキーバッファをフラッシュしない。
See 項5.5.2. 「サーバパラメータのチューニング」。
--des-key-file=filename
DES_ENCRYPT()
および
DES_DECRYPT()
が使用するデフォルトキーをこのファイルから読み取る。
--enable-external-locking(以前は
--enable-locking)
システムロックを有効にする。注意:
lockd
が完全には機能しないシステム(Linux
など)でこのオプションを使用すると、mysqld
がデッドロックになる可能性が高くなる。
--enable-named-pipe
名前付きパイプのサポートを有効化する(Windows NT/2000/XP のみ)。
-T, --exit-info
mysqld
サーバのデバッグに使用できる、複数の異なるフラグのビットマスク。完全に理解していない限り、このオプションは使用しないこと。
--flush
各 SQL コマンド実行後、ディスクへの変更をすべてフラッシュする。通常、MySQL は各 SQL コマンドの後、ディスクへの変更の書き込みだけを行い、ディスクへの同期処理はオペレーティングシステムに任せる。 See 項A.4.1. 「MySQL が何度もクラッシュする場合に行うこと」。
-?, --help
ショートヘルプを表示して終了する。
--init-file=file
起動時に、このファイルから SQL コマンドを読み取る。
-L, --language=...
クライアントエラーメッセージに使用する言語。フルパスで指定できる。 See 項4.7.2. 「英語以外のエラーメッセージ」。
-l, --log[=file]
接続とクエリをログファイルに記録する。 See 項4.10.2. 「一般クエリログ」。
--log-bin=[file]
データを変更するクエリをすべてログファイルに記録する。バックアップおよびレプリケーション用に使用する。 See 項4.10.4. 「バイナリログ」。
--log-bin-index[=file]
バイナリログファイル名のインデックスファイル。 See 項4.10.4. 「バイナリログ」。
--log-error[=file]
エラーメッセージおよびスタートアップメッセージをこのログファイルに記録する。 See 項4.10.1. 「エラーログ」。
--log-isam[=file]
ISAM および MyISAM の変更をすべてログファイルに記録する(ISAM および MyISAM のデバッグ時のみ使用)。
--log-long-format
追加情報をログファイルに記録する(更新ログ、バイナリ更新ログ、スロークエリログなど、有効化されているすべてのログ)。たとえば、クエリのユーザ名とタイムスタンプが記録される。--log-slow-queries
と --log-long-format
を使用している場合、インデックスを使用しないクエリも、スロークエリログに記録される。
注意: --log-long-format
は MySQL
バージョン 4.1
で廃止され、--log-short-format
が導入されている(long log format
がバージョン 4.1
以降のデフォルト設定になった)。また、MySQL
4.1
から、インデックスを使用しないクエリをスロークエリログに記録するための
--log-queries-not-using-indexes
オプションが利用可能になっている。
--log-queries-not-using-indexes
このオプションを --log-slow-queries
と一緒に使用すると、インデックスを使用しないクエリも、スロークエリログに記録される。このオプションは
MySQL 4.1 で導入された。 See
項4.10.5. 「スロークエリログ」。
--log-short-format
ログファイル(更新ログ、バイナリ更新ログ、スロークエリログなど、有効化されているすべてのログ)に記録される情報が少なくなる。たとえば、クエリのユーザ名とタイムスタンプが記録されなくなる。このオプションは MySQL 4.1 で導入。
--log-slow-queries[=file]
実行時間が long_query_time
秒を超えたクエリをすべてログファイルに記録する。
注意: 記録されるデフォルトの情報量は MySQL
4.1
で変更された。詳細については、--log-long-format
オプションおよび --log-long-format
オプションの説明を参照のこと。 See
項4.10.5. 「スロークエリログ」。
--log-update[=file]
指定がなければ、更新を file.#
に記録する。#
は一意の番号。
See 項4.10.3. 「更新ログ」。 更新ログは MySQL
5.0
で廃止されるので、代わりにバイナリログ(--log-bin
)を使用すること。
See 項4.10.4. 「バイナリログ」。 バージョン 5.0
からは、--log-update
を使用すると単にバイナリログが有効になる。
--low-priority-updates
テーブル編集操作(INSERT
、DELETE
、UPDATE
)の優先順位が選択よりも低くなる。{INSERT
| REPLACE | UPDATE | DELETE} LOW_PRIORITY ...
を使用して 1
つのクエリだけ優先順位を低くしたり、SET
LOW_PRIORITY_UPDATES=1
を使用して 1
つのスレッド内での優先順位を変更することもできる。
See 項5.3.2. 「テーブルロック関連の問題」。
--memlock
メモリ内の mysqld
プロセスをロックする。これは、使用しているシステムが
mlockall()
システムコールをサポートしている場合(Solaris
など)のみで使用可能。オペレーティングシステムが原因で
mysqld
のスワップが発生するという問題がある場合、その解決に役立つ。
注意:
このオプションを使用するには、サーバを
root
として起動することが必要になるが、これはセキュリティ上好ましくない。
--myisam-recover [=option[,option...]]
オプションは、DEFAULT
、BACKUP
、FORCE
、および
QUICK
の任意の組み合わせ。このオプションを無効にするには、これを明示的に
""
に設定する。このオプションを使用すると、mysqld
はテーブルを開くときに、テーブルにクラッシュのマークが付いていないか、つまりテーブルが正しく閉じられているかどうかをチェックする
(最後のオプションは、--skip-external-locking
を使用している場合だけ有効)。テーブルにクラッシュマークが付いていた場合、mysqld
はテーブルをチェックする。テーブルが破損していた場合、mysqld
は修復を試みる。
以下のオプションにより、修復方法が決定される。
オプション | 説明 |
DEFAULT |
--myisam-recover
でどのオプションも指定しないのと同じ。 |
BACKUP | 修復時にデータテーブルが変更された場合、table_name.MYD
データファイルのバックアップを
table_name-datetime.BAK
として保存する。 |
FORCE | .MYD ファイルから複数のレコードが失われる場合でも修復を実行する。 |
QUICK | 削除ブロックがない場合、テーブル内のレコードをチェックしない。 |
テーブルを自動的に修復する前に、MySQL
はそのことをエラーログに追加する。ユーザの介入なしにほとんどすべての問題をリカバリできるようにするには、オプション
BACKUP,FORCE
を使用する。これにより、いくつかのレコードが削除される場合でもテーブルの修復が行われるが、古いデータファイルがバックアップとして残るので後で調べることができる。
--new
バージョン 4.0.12
から使用可能となったオプション。--new
オプションを使用すると、特定の局面でサーバを
4.1 のように動作させることができ、簡単に
4.0 から 4.1 にアップグレードできる。
TIMESTAMP
が、'YYYY-MM-DD HH:MM:SS'
形式の文字列として返る。 See
項6.2. 「カラム型」。
--pid-file=path
mysqld_safe
によって使用される
PID ファイルのパス。
-P, --port=...
TCP/IP 接続をリッスンするポート番号。
-o, --old-protocol
非常に古いクライアントとの互換性のために 3.20 プロトコルを使用する。 See 項2.5.5. 「バージョン 3.20 から 3.21 へのアップグレード」。
--one-thread
1 スレッドのみ使用する(Linux でのデバッグ用)。 このオプションは、サーバのデバッグが有効になっている場合のみ使用可能。 See 項E.1. 「MySQL サーバのデバッグ」。
--open-files-limit=
mysqld
で使用可能なファイル記述子の数を変更できる。
これが設定されていないか、または 0
に設定されている場合、mysqld
は、setrlimit()
で使用する値を使用してファイル記述子を予約する。この値が
0 の場合、mysqld
は
max_connections*5
または
max_connections + table_cache*2
のいずれか大きい値をファイル数として予約する。mysqld
で ' Too many open files '
のエラーが出る場合、この値を大きくする。
-O, --set-variable=name=value
変数に値を設定する。--help
により変数一覧を表示できる。すべての変数の詳細については、このマニュアルの
SHOW VARIABLES
セクションを参照のこと。 See
項4.6.8.4. 「SHOW VARIABLES
」。
これら変数を最適化する方法については、「サーバパラメータのチューニング」セクションを参照のこと。
注意: --set-variable=変数名=値
および -O 変数名=値
構文は、MySQL 4.0 で廃止。代わりに
--変数名=値
を使用すること。
See 項5.5.2. 「サーバパラメータのチューニング」。
MySQL 4.0.2 では変数を --変数名=値
で直接設定できるので、set-variable
は必要なくなった。
SET
で設定可能なスタートアップオプションの最大値を制限するには、--maximum-variable-name
コマンドラインオプションを使用して定義する。
See 項5.5.6. 「SET
構文」。
注意: 変数に値を設定すると、その値が設定可能範囲に収まるように、また使用アルゴリズムに合うように自動的に変数値が修正される。
--safe-mode
いくつかの最適化ステージをスキップする。
--safe-show-database
このオプションを使用して SHOW
DATABASES
コマンドを実行すると、そのユーザが何らかの権限を持っているデータベースのみが戻り値として返る。
バージョン 4.0.2 からすべてのユーザが
SHOW DATABASES
権限を持つようになったので、このオプションは廃止され、何もしない(このオプションはデフォルトで有効)。
See 項4.4.1. 「GRANT
および REVOKE
の構文」。
--safe-user-create
これを有効にした場合、ユーザに
mysql.user
テーブルあるいはそのテーブル内のカラムへの
INSERT
権限がなければ、そのユーザは
GRANT
コマンドを使用して新規ユーザを作成できない。
--skip-bdb
BDB テーブルの使用を無効にする。メモリの節約および演算処理のスピードアップに役立つ。
--skip-concurrent-insert
MyISAM
テーブルで
SELECT
と INSERT
を同時に実行できなくする(これは、この機能にバグがあると思われる場合だけ使用すること)。
--skip-delay-key-write
MySQL 4.0.3 では、代わりに
--delay-key-write=OFF
を使用する。
すべてのテーブルの
DELAY_KEY_WRITE
オプションを無視する。 See
項5.5.2. 「サーバパラメータのチューニング」。
--skip-grant-tables
サーバが一切の権限システムを使用しないようにする。これによりすべての人が、すべてのデータベースにフルアクセスできるようになる(実行中のサーバに権限テーブルを再び使用させるには、mysqladmin
flush-privileges
または mysqladmin
reload
を実行する)。
--skip-host-cache
IP への名前解決に、ホスト名キャッシュを使用せず、接続ごとに DNS サーバに対しクエリを発行する。 See 項5.5.5. 「MySQL の DNS の使用」。
--skip-innodb
Innodb テーブルの使用を無効にする。メモリとディスク領域の節約および演算処理のスピードアップに役立つ。
--skip-external-locking(以前は
--skip-locking)
システムロックを使用しない。isamchk
または myisamchk
を使用するには、サーバをシャットダウンする必要がある。
See 項1.2.3. 「MySQL の安定性」。 注意: MySQL
バージョン 3.23 では、REPAIR
および CHECK
を使用して
MyISAM
テーブルを修復したりチェックすることができる。
--skip-name-resolve
ホスト名を解決しない。権限テーブルの
Host
カラムの値がすべて IP
アドレスまたは localhost
であることが必要である。 See
項5.5.5. 「MySQL の DNS の使用」。
--skip-networking
TCP
ポートを一切リッスンしない。mysqld
とのやり取りはすべて、名前付きパイプまたは
Unix
ソケットを介して行う必要がある。ローカルからの接続要求のみが許可されているシステムにおいて、特にこのオプションが推奨される。
See 項5.5.5. 「MySQL の DNS の使用」。
--skip-new
新しくて間違っている可能性のあるルーチンを使用しない。
--skip-symlink
4.0.13 で廃止。代わりに
--skip-symbolic-links
を使用すること。
--symbolic-links, --skip-symbolic-links
シンボリックリンクのサポートを有効または無効にする。このオプションは、Windows と Unix では効果が異なる。
Windows
でシンボリックリンクを有効にすると、実際のディレクトリへのパスが含まれる
directory.sym
ファイルの作成により、データベースディレクトリへのシンボリックリンクを作成できるようになる。
See 項5.6.1.3. 「Windows
上のデータベースに対するシンボリックリンクの使用」。
Unix
でシンボリックリンクを有効にすると、CREATE
TABLE
ステートメントの INDEX
DIRECTORY
オプションまたは DATA
DIRECTORY
オプションで
MyISAM
のインデックスファイルまたはデータファイルを別ディレクトリにリンクできるようになる。テーブルを削除したり名前を変更すると、そのシンボリックリンクがポイントするファイルも削除または名前変更される。
--skip-safemalloc
MySQL を --with-debug=full
でコンフィギャしていれば、すべてのプログラムが、メモリの割り当て時と解放時に必ずメモリのオーバーランをチェックする。このチェックには時間がかかるため、このチェックを行わないで済むサーバに対しては、--skip-safemalloc
オプションによりチェックをスキップできる。
--skip-show-database
ユーザが SHOW DATABASES
権限を持っていない場合に、SHOW
DATABASES
コマンドを無効にする。
--skip-stack-trace
スタックトレースを書き込まない。このオプションは、デバッガで
mysqld
を実行するときに役立つ。システムによっては、コアファイルを取得するためにこのオプションの使用が必要な場合もある。
See 項E.1. 「MySQL サーバのデバッグ」。
--skip-thread-priority
応答時間を短くするため、スレッド優先度の使用を無効にする。
--socket=path
Unix
では、ローカル接続に使用するソケットファイル(デフォルトでは
/tmp/mysql.sock
)。 Windows
では、名前付きパイプを使用するローカル接続用パイプ名(デフォルトでは
MySQL
)。
--sql-mode=value[,value[,value...]]
オプション値として、次の任意の組み合わせを設定できる。
REAL_AS_FLOAT
、PIPES_AS_CONCAT
、ANSI_QUOTES
、IGNORE_SPACE
、ONLY_FULL_GROUP_BY
、NO_UNSIGNED_SUBTRACTION
、NO_AUTO_VALUE_ON_ZERO
、NO_TABLE_OPTIONS
、NO_FIELD_OPTIONS
、NO_KEY_OPTIONS
、NO_DIR_IN_CREATE
、MYSQL323
、MYSQL40
、DB2
、MAXDB
、MSSQL
、ORACLE
、POSTGRESQL
、および
ANSI
。
リセットするには、値を空白にする(--sql-mode=""
)。
NO_AUTO_VALUE_ON_ZERO
は、AUTO_INCREMENT
カラムの処理に影響を与える。通常、NULL
または 0
のいずれかをカラムに挿入することにより、カラムの次のシーケンス番号を生成する。
NO_AUTO_VALUE_ON_ZERO
を指定すると、0
のこの働きが抑制されるため、NULL
だけが次のシーケンス番号を生成することになる。このモードは、0
がテーブルの AUTO_INCREMENT
カラムに保存されている場合に役に立つ(これは推奨されている方法ではないが)。たとえば、mysqldump
でテーブルをダンプしてから再読み込みした場合、MySQL
は通常、0
値に遭遇したときに新規シーケンス番号を生成するため、ダンプされたテーブルと再読み込みしたテーブルの内容が異なる結果になる。この場合、ダンプしたファイルを再読み込みする前に
NO_AUTO_VALUE_ON_ZERO
を有効にするとこの問題が解決する(このオプションが使用可能になった
MySQL 4.1.1 以降、mysqldump
によるダンプ出力には、自動的に
NO_AUTO_VALUE_ON_ZERO
を有効にするためのステートメントが含まれている)。
他のサーバとの互換性のために使用するオプション値もある。
これらを指定することにより、SHOW
CREATE TABLE
の実行結果から、以前のバージョンの MySQL
または他のデータベースサーバが理解できない出力が除外される。
これらのオプション値を使用すると、CREATE
TABLE
ステートメントの他のサーバへの移植性が高まる。
NO_TABLE_OPTIONS
、NO_FIELD_OPTIONS
、NO_DIR_IN_CREATE
、および
NO_KEY_OPTIONS
を使用すると、テーブルオプションや、カラムまたはインデックス定義に関するオプションが除外される。
MYSQL323
と
MYSQL40
は、MySQL 3.23 と MySQL
4.0 との互換用。
他のサーバとの互換性を維持するための値は、DB2
、MAXDB
、MSSQL
、ORACLE
、および
POSTGRESQL
。
mysqldump
は SHOW CREATE
TABLE
を使用して、ダンプ出力に含むテーブル作成ステートメントを取得するため、これらのオプションは
mysqldump
の出力にも影響する。
オプション値のいくつかは、値のセットまたはグループの略称なので、影響は複雑になる。
たとえば、--sql-mode=ANSI
(または
--ansi
)オプションを使用して、サーバに
ANSI
モードで実行するように命令できる。これは以下のコマンドラインオプションを両方指定するのと同じ。
--sql-mode=REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ONLY_FULL_GROUP_BY --transaction-isolation=SERIALIZABLE
注意: この方法で ANSI モードを指定すると、トランザクション分離レベルを設定することにもなる。 ANSI モードでのサーバの実行については、項1.8.2. 「ANSI モードでの MySQL の実行」 を参照のこと。
他の ``グループ''
値は、DB2
、MAXDB
、MSSQL
、ORACLE
、および
POSTGRESQL
。
これらのいずれの値を指定しても、PIPES_AS_CONCAT
、ANSI_QUOTES
、IGNORE_SPACE
、NO_TABLE_OPTIONS
、NO_FIELD_OPTIONS
、および
NO_KEY_OPTIONS
値が有効になる。
--sql-mode
オプションは MySQL 3.23.41
で追加された。
NO_UNSIGNED_SUBTRACTION
値は 4.0.0
で追加された。 NO_DIR_IN_CREATE
は 4.0.15 で追加された。
NO_AUTO_VALUE_ON_ZERO
、NO_TABLE_OPTIONS
、NO_FIELD_OPTIONS
、NO_KEY_OPTIONS
、MYSQL323
、MYSQL40
、DB2
、MAXDB
、MSSQL
、ORACLE
、POSTGRESQL
、および
ANSI
は 4.1.1 で追加された。
--temp-pool
このオプションを使用すると、サーバによって作成される大部分のテンポラリファイルが、それぞれ一意の名前ではなく、小さな名前のセットを使用する。これは、多くの新規ファイルが異なる名前で作成され、それを Linux カーネルが処理する問題を回避するためである。Linux では、メモリがディスクキャッシュではなく、ディレクトリエントリキャッシュに割り当てられるため、以前の動作ではメモリの ``リーク'' が発生しやすい。
--transaction-isolation={ READ-UNCOMMITTED |
READ-COMMITTED | REPEATABLE-READ | SERIALIZABLE }
デフォルトのトランザクション分離レベルを設定する。
See 項6.7.6. 「SET TRANSACTION
構文」。
-t, --tmpdir=path
テンポラリファイルの作成に使用されるディレクトリのパス。テンポラリファイルを保存するには小さすぎるパーティション上にデフォルトの
/tmp
ディレクトリがある場合、このオプションが役に立つ。
MySQL 4.1
以降、複数のパスの指定が可能になっている。これらのパスはラウンドロビン方式で使用される。Unix
ではコロン(‘:
’)を、Windows
ではセミコロン(‘;
’)を使用してパスを区切る。
メモリベースのファイルシステムを指すように
tmpdir
を設定することは可能。ただし、MySQL
サーバがスレーブの場合はできない。スレーブの場合、マシンがリブートしてもテンポラリテーブルのレプリケーションまたは
LOAD DATA INFILE
のレプリケーション処理を続行するためのテンポラリファイルが必要となる。そのため、マシンのリブートで消去されるメモリベースの
tmpdir
は適しない。ディスクベースの
tmpdir
が必要。
-u, --user={user_name | user_id}
mysqld
サーバを、ユーザ名
user_name
またはユーザ ID
user_id
を持つユーザとして実行する (ここでの
``ユーザ'' は、権限テーブルにリストされた
MySQL
ユーザではなく、システムログインアカウントを指す)。
このオプションは、mysqld
を
root
アカウントで起動する場合、必須である。
起動シーケンス中にサーバがそのユーザ ID
を変更し、root
ではなく、その特定のユーザとして実行する。
See 項4.3.2. 「MySQL のクラッカー対策」。
MySQL 3.23.56 および 4.0.12 以降では、 ユーザが
--user=root
オプションを
my.cnf
ファイルに追加するという(結果、サーバは
root
として稼動)セキュリティホールを回避するため、mysqld
は指定された最初の --user
オプションだけを使用し、複数の
--user
オプションがあった場合は警告を出力する。/etc/my.cnf
および datadir/my.cnf
内のオプションは、コマンドラインオプションの前に処理されるため、--user
オプションを /etc/my.cnf
に含めて root
以外の値を指定することを推奨する。/etc/my.cnf
内のオプションは他の --user
オプションより先に検出され、サーバは確実に
root
以外のユーザとして実行され、他の
--user
オプションが検出されると警告が出力される。
-V, --version
バージョン情報を表示して終了する。
-W, --log-warnings
Aborted connection...
などの警告を
.err
ファイルに出力する。レプリケーションを使用する場合は、このオプションを有効にすることを推奨する(ネットワークエラーや再接続に関するメッセージなど、現在何が起こっているかについての情報をより多く取得できる)。
See 項A.2.10. 「通信エラー/Aborted connection」。
このオプションは以前の
--warnings
。
実行中のサーバに対して、ほとんどの値を
SET
コマンドで変更できます。 See
項5.5.6. 「SET
構文」。
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.