configure スクリプトを使用することによって MySQL のソース配布の設定を柔軟にできます。通常は、configure コマンドラインのオプションを使用してこれを行います。また、特定の環境変数を使って、configure に影響を与えることもできます。詳しくは項2.14. 「環境変数」を参照してください。configure がサポートしているオプションの完全なリストを表示するには、このコマンドを実行します。
shell> ./configure --help
下の表に、使用可能な configure オプションのリストを示します。
表 2.1. 構築 (configure)
のリファレンス
| フォーマット | 説明 | デフォルト | 導入 | 削除 |
|---|---|---|---|---|
| --bindir=DIR | ユーザーが実行可能 | EPREFIX/bin | ||
| --build=BUILD | BUILD での構築用に設定する | 推定 | ||
| --cache-file=FILE | FILE のキャッシュテスト結果 | 個のアドバイザが無効になりました。 | ||
| -C | 「--cache-file=config.cache」のエイリアス | |||
| --config-cache | ||||
| --datadir=DIR | アーキテクチャーに依存しない読み取り専用データ | PREFIX/share | ||
| --disable-FEATURE | FEATURE を含めない | |||
| --disable-dependency-tracking | 依存性の追跡を無効にする | |||
| --disable-grant-options | GRANT オプションを無効にする | |||
| --disable-largefile | 大きいファイルのサポートを省略する | |||
| --disable-libtool-lock | libtool ロックを無効にする | |||
| --disable-thread-safe-client | スレッドなしでクライアントをコンパイルする | 5.1.7 | ||
| --enable-FEATURE | FEATURE を有効にする | |||
| --enable-assembler | 可能な場合に一部の文字列関数のアセンブラバージョンを使用する | |||
| --enable-dependency-tracking | 低速の依存性エクストラクタを拒否しない | |||
| --enable-fast-install | 高速インストール用に最適化する | yes | ||
| --enable-local-infile | LOAD DATA LOCAL INFILE を有効にする | 個のアドバイザが無効になりました。 | ||
| --enable-shared | 共有ライブラリを構築する | yes | ||
| --enable-static | 静的ライブラリを構築する | yes | ||
| --enable-thread-safe-client | スレッドを使ってクライアントをコンパイルする | |||
| --exec-prefix=EPREFIX | アーキテクチャー依存のファイルを EPREFIX にインストールする | |||
| -h | このヘルプを表示して終了する | |||
| --help | ||||
| --help=short | このパッケージに固有のオプションを表示する | |||
| --help=recursive | 含まれているすべてのパッケージの短いヘルプを表示する | |||
| --host=HOST | クロスコンパイルして HOST 上で実行するプログラムを構築する | |||
| --includedir=DIR | C ヘッダーファイル | PREFIX/include | ||
| --infodir=DIR | 情報ドキュメント | PREFIX/info | ||
| --libdir=DIR | オブジェクトコードライブラリ | EPREFIX/lib | ||
| --libexecdir=DIR | プラグラムが実行可能 | EPREFIX/libexec | ||
| --localstatedir=DIR | 変更可能な単一マシンデータ | PREFIX/var | ||
| --mandir=DIR | マニュアルドキュメント | PREFIX/man | ||
| -n | 出力ファイルを作成しない | |||
| --no-create | ||||
| --oldincludedir=DIR | gcc 以外用の C ヘッダーファイル | /usr/include | ||
| --prefix=PREFIX | アーキテクチャーに依存しないファイルを PREFIX にインストールする | |||
| --program-prefix=PREFIX | インストールしたプログラムの名前の前に PREFIX を付加する | |||
| --program-suffix=SUFFIX | インストールしたプログラムの名前のあとに SUFFIX を付加する | |||
| --program-transform-name=PROGRAM | インストールしたプログラム名に sed PROGRAM を実行する | |||
| -q | 「checking...」というメッセージを出力しない | |||
| --quiet | ||||
| --sbindir=DIR | システム管理者が実行可能 | EPREFIX/sbin | ||
| --sharedstatedir=DIR | アーキテクチャーに依存しない変更可能なデータ | PREFIX/com | ||
| --srcdir=DIR | DIR でソースを検索する | 設定ディレクトリまたは .. | ||
| --sysconfdir=DIR | 読み取り専用の単一マシンデータ | PREFIX/etc | ||
| --target=TARGET | TARGET のコンパイラの構築用に設定する | |||
| -V | バージョン情報を表示して終了する | |||
| --version | ||||
| --with-PACKAGE | PACKAGE を使用する | |||
| --with-archive-storage-engine | アーカイブストレージエンジンを有効にする | no | ||
| --with-atomic-ops | マルチプロセッサ用の pthread rwlock または原子 CPU の手順を使用して原子動作を実装する | 5.1.12 | ||
| --with-berkeley-db | DIR にある BerkeleyDB を使用する | no | ||
| --with-berkeley-db-includes | DIR の Berkeley DB ヘッダーを検索する | |||
| --with-berkeley-db-libs | DIR の Berkeley DB ライブラリを検索する | |||
| --with-big-tables | 32 ビットプラットフォームでも 4 G を超える行のあるテーブルをサポートする | |||
| --with-blackhole-storage-engine | ブラックホールストレージエンジンを有効にする | no | ||
| --with-charset | デフォルトのキャラクタセット | |||
| --with-client-ldflags | クライアント用の追加のリンク引数 | |||
| --with-collation | Default collation | |||
| --with-comment | コンパイル環境に関するコメント | |||
| --with-csv-storage-engine | CSV ストレージエンジンを有効にする | yes | ||
| --with-darwin-mwcc | OS X/Darwin で Metrowerks CodeWarrior ラッパーを使用する | |||
| --with-debug | デバッグコードを追加する | 5.1.7 | ||
| --with-debug=full | デバッグコードを追加する (メモリーチェッカーを追加する、非常に低速) | |||
| --with-embedded-privilege-control | ユーザーの権限を確認する部品を構築する (組み込みライブラリにのみ影響する) | |||
| --with-embedded-server | 組み込みサーバーを構築する | |||
| --with-error-inject | MySQL Server でエラー注入を有効にする | 5.1.11 | ||
| --with-example-storage-engine | 例ストレージエンジンを有効にする | no | ||
| --with-extra-charsets | デフォルトに追加でキャラクタセットを使用する | |||
| --with-fast-mutexes | 高速な相互排他でコンパイルする | 個のアドバイザが有効になりました。 | 5.1.5 | |
| --with-federated-storage-engine | 連携ストレージエンジンを有効にする | no | 5.1.3 | 5.1.9 |
| --with-gnu-ld | C コンパイラが GNU ld を使用することを想定する | no | ||
| --with-innodb | innobase ストレージエンジンを有効にする | no | 5.1.3 | 5.1.9 |
| --with-lib-ccflags | ライブラリ用の追加の CC オプション | |||
| --with-libwrap=DIR | libwrap (tcp_wrappers) サポートでコンパイルする | |||
| --with-low-memory | コンパイルに使用するメモリーを少なくしてメモリーの制限を回避することを試みる | |||
| --with-machine-type | 「powerpc」などのマシンタイプを設定する | |||
| --with-max-indexes=N | テーブルあたりの最大インデックス数を設定する | 64 | ||
| --with-mysqld-ldflags | mysqld 用の追加のリンク引数 | |||
| --with-mysqld-libs | mysqld 用にリンクする追加のライブラリ | |||
| --with-mysqld-user | mysqld デーモンを実行するときのユーザー | |||
| --with-mysqlmanager | mysqlmanager バイナリを構築する | サーバーが構築された場合に構築する | ||
| --with-named-curses-libs | 指定された curses ライブラリを使用する | |||
| --with-named-thread-libs | 指定されたスレッドライブラリを使用する | |||
| --with-ndb-ccflags | ndb コンパイル用の追加の CC オプション | |||
| --with-ndb-docs | NDB Cluster の ndbapi および mgmapi のドキュメントを含める | |||
| --with-ndb-port | NDB Cluster 管理サーバーのポート | |||
| --with-ndb-port-base | NDB Cluster 管理サーバーのポート | |||
| --with-ndb-sci=DIR | MySQL に sci ライブラリのカスタムロケーションを指定する | |||
| --with-ndb-test | NDB Cluster の ndbapi テストプログラムを含める | |||
| --with-ndbcluster | NDB Cluster のテーブルハンドラを含める | no | ||
| --with-openssl=DIR | OpenSSL サポートを含める | |||
| --with-openssl-includes | DIR の OpenSSL ヘッダーを検索する | |||
| --with-openssl-libs | DIR の OpenSSL ライブラリを検索する | |||
| --with-other-libc=DIR | 指定された標準以外のロケーションにインストールされた libc その他の標準ライブラリに対するリンク | |||
| --with-pic | PIC または PIC 以外のオブジェクトだけを使用することを試みる | 両方とも使用する | ||
| --with-plugin-PLUGIN | 名前付きのプラグインを強制的に mysqld に静的にリンクさせる | 5.1.11 | ||
| --with-plugins | mysqld に含めるプラグイン | none | 5.1.11 | |
| --with-pstack | pstack バックトレースライブラリを使用する | |||
| --with-pthread | pthread ライブラリを強制的に使用させる | |||
| --with-row-based-replication | 行ベースのレプリケーション | 5.1.5 | 5.1.6 | |
| --with-server-suffix | バージョン文字列に値を付加する | |||
| --with-ssl=DIR | SSL サポートを含める | 5.1.11 | ||
| --with-system-type | 「sun-solaris10」などのシステムタイプを設定する | |||
| --with-tags | 追加の設定を含める | 自動 | ||
| --with-tcp-port | MySQL サービスで使用するポート | 3306 | ||
| --with-unix-socket-path | Unix ドメインのソケットを配置する場所 | |||
| --with-yassl | yaSSL サポートを含める | |||
| --with-zlib-dir=no|bundled|DIR | MySQL に圧縮ライブラリのカスタムロケーションを指定する | |||
| --without-PACKAGE | PACKAGE を使用しない | |||
| --without-bench | ベンチマークスイートの構築をスキップする | |||
| --without-debug | デバッグコードなしで本稼働バージョンを構築する | |||
| --without-docs | ドキュメントの構築をスキップする | |||
| --without-extra-tools | ツールディレクトリのユーティリティーの構築をスキップする | |||
| --without-geometry | 幾何関連の部品を構築しない | |||
| --without-libedit | バンドル版の代わりにシステムの libedit を使用する | |||
| --without-man | マニュアルページの構築をスキップする | |||
| --without-ndb-binlog | ndb binlog を無効にする | 5.1.6 | ||
| --without-ndb-debug | ndb の特殊なデバッグ機能を無効にする | |||
| --without-plugin-PLUGIN | PLUGIN を除外する | 5.1.11 | ||
| --without-query-cache | クエリーキャッシュを作成しない | |||
| --without-readline | バンドル版の代わりにシステムの readline を使用する | |||
| --without-row-based-replication | 行ベースのレプリケーションを含めない | 5.1.7 | 5.1.14 | |
| --without-server | クライアントのみを構築する | |||
| --without-uca | 国別の Unicode 照合の構築をスキップする |
次に、利用できる configure オプションの一部を説明します。MySQL の構築で問題が発生する場合に使用している可能性があるオプションについては、項2.10.4. 「MySQL のコンパイルに関する問題」 を参照してください。
サーバーではなく MySQL
のクライアントライブラリとクライアントプログラムをコンパイルするには、--without-server
オプションを使用します。
shell> ./configure --without-server
C++
のコンパイラを持っていない場合、mysql
などのクライアントプログラムは C++
が必要なためコンパイルできません。この場合、C++
コンパイラをテストする
configure
のコードを削除してから、./configure
を --without-server
オプションを使って実行します。コンパイルのステップはそれでもすべてのクライアントをビルドしようとしますが、mysql.cc
のようなファイルに関する警告は無視して構いません。(もし
make
が停止しても、make
-k
を実行してエラーが発生してもビルドの最後まで継続させます)。
組み込み MySQL ライブラリ
(libmysqld.a)
を作成する場合は、--with-embedded-server
オプションを使用します。
ログファイルとデータベースディレクトリを
/usr/local/var
の下に配置しない場合は、次のいずれかに似た
configure
コマンドを使用します。
shell>./configure --prefix=/usr/local/mysqlshell>./configure --prefix=/usr/local \--localstatedir=/usr/local/mysql/data
最初のコマンドはすべてがデフォルトの
/usr/local ではなく
/usr/local/mysql
にインストールさるようインストールの接尾辞を変更します。2
番目のコマンドはデフォルトのインストール接頭辞を保持しますが、デフォルトのロケーションをデータベースのディレクトリ
(通常は
/usr/local/var)
にオーバーライドしてそれを
/usr/local/mysql/data
に変更します。
インストールのディレクトリのロケーションとデータディレクトリのロケーションも
--basedir および
--datadir
オプションを使用してサーバーの起動時に変更できます。これらは、通常はオプションファイルを使用するのが一般的ではあるが、コマンドラインあるいは
MySQL
オプションファイルで変更可能です。Using Option Files
を参照してください。
Unix を使用していて、MySQL
ソケットファイルのロケーションをデフォルトのロケーション
(通常はディレクトリ
/tmp または
/var/run)
以外の場所にする場合は、次のような
configure
コマンドを使用します。
shell>./configure \--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock
ソケットのファイル名は絶対パス名にする必要があります。MySQL
のオプションファイルを使用してサーバーの起動時に
mysql.sock
のロケーションを変更することもできます。How to Protect or Change the MySQL Unix Socket File
を参照してください。
静的にリンクされたプログラムをコンパイルする場合 (たとえば、バイナリ配布を作成する、性能を向上させる、または一部の Red Hat Linux 配布の問題を回避する、など) は、次のように configure を実行します。
shell>./configure --with-client-ldflags=-all-static \--with-mysqld-ldflags=-all-static
gcc
を使用していて、libg++
または libstdc++
がインストールされていない場合は、configure
に gcc を C++
コンパイラとして使用するように命令できます。
shell> CC=gcc CXX=gcc ./configure
gcc を C++
コンパイラとして使用すると、libg++
あるいは libstdc++
ではリンクしません。それらのライブラリをインストールしていたとしてもこれをしてほうがよいでしょう。それらのバージョンのいくつかはこれまで
MySQL
ユーザーに予想外な問題を起こしてきました。
以下のリストはそれぞれ一般に使用されてきたいくつかのコンパイラおよび環境変数の設定を示したものです。
gcc 2.7.2:
CC=gcc CXX=gcc CXXFLAGS="-O3 -felide-constructors"
gcc 2.95.2:
CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro \ -felide-constructors -fno-exceptions -fno-rtti"
pgcc 2.90.29
あるいはそれ以降
CFLAGS="-O3 -mpentiumpro -mstack-align-double" CXX=gcc \ CXXFLAGS="-O3 -mpentiumpro -mstack-align-double \ -felide-constructors -fno-exceptions -fno-rtti"
ほとんどの場合、上記のリストにあるオプションを使用して適度に最適化された MySQL のバイナリを得て、以下のオプションを configure の行に追加します。
--prefix=/usr/local/mysql --enable-assembler \ --with-mysqld-ldflags=-all-static
フルの configure 行は、言い換えると、最近のすべての gcc バージョンに対しては多少なりとも以下のようになります。
CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro \ -felide-constructors -fno-exceptions -fno-rtti" ./configure \ --prefix=/usr/local/mysql --enable-assembler \ --with-mysqld-ldflags=-all-static
MySQL Web サイト http://dev.mysql.com/downloads/ で提供しているバイナリはすべて完全な最適化の下でコンパイルしているため、ほとんどのユーザーにパーフェクトに適合します。詳しくは項2.1.2.4. 「米国 Sun Microsystems, Inc. がコンパイルした MySQL バイナリ」を参照してください。Configulation の設定の中には少し微調整して高速のバイナリをビルドできるものもありますが、しかしこれらの設定は熟練したユーザー向けです。項4.5.1. 「MySQL の速度に対するコンパイルとリンクの影響」 を参照してください。
コンパイラでのビルドに失敗してエラーが発生した場合、あるいはリンカが共有ライブラリ
libmysqlclient.so.
(NN はバージョン番号)
を作成できない場合、--disable-shared
オプションを
configure
することでこの問題を回避できます。この場合、configure
は共有
libmysqlclient.so.
ライブラリをビルドしません。
N
デフォルトでは、MySQL は
latin1 (cp1252 West
European)
キャラクタセットを使用します。デフォルトの設定を変更するには、--with-charset
オプションを使用します。
shell> ./configure --with-charset=CHARSET
CHARSET
は次のいずれかです。binary、armscii8、ascii、big5、cp1250、cp1251、cp1256、cp1257、cp850、cp852、cp866、cp932、dec8、eucjpms、euckr、gb2312、gbk、geostd8、greek、hebrew、hp8、keybcs2、koi8r、koi8u、latin1、latin2、latin5、latin7、macce、macroman、sjis、swe7、tis620、ucs2、ujis、utf8。詳しくはCharacter Set Configurationを参照してください。(その他のキャラクタセットも利用できます。./configure
--help
の出力で現在のリストを確認してください。)
デフォルトで照合を指定することもできます。MySQL
はデフォルトで
latin1_swedish_ci
照合を使用しています。この設定を変更するには
--with-collation
オプションを使用します。
shell> ./configure --with-collation=COLLATION
キャラクタセットと照合の両方を変更するには、--with-charset
および --with-collation
オプションを使用します。キャラクタセットの照合は規定の照合になります。(各文字列セットにどの照合を使用するかを決めるには
SHOW
COLLATION
ステートメントを使用します。
configure
オプションの
--with-extra-charsets=
を使うと、サーバーにコンパイルする追加のキャラクタセットを定義できます。LISTLIST
は以下のいずれかになります。
スペースで区切られた文字列セット名のリスト
complex
は動的にロードできないすべてのキャラクタセットを含む
all
はバイナリのすべてのキャラクタセットを含む
サーバーとクライアントで文字変換するクライアントは
SET NAMES
ステートメントを使用する必要があります。Session System Variables、Connection Character Sets and Collations
を参照してください。
デバッグコードを使って MySQL
を設定するには、--with-debug
オプションを使用します。
shell> ./configure --with-debug
これによりエラーを検出し状況に関する出力を提供する安全メモリーアロケータを含むことができます。MySQL Internals: Porting を参照してください。
MySQL 5.1.12
では、--with-debug
を使用して MySQL
のデバッグのサポートを可能にしサーバーの起動時に
--debug="d,parser_debug"
オプションを使用できるようにします。これにより
SQL ステートメントの処理に使用される Bison
parser に parser
トレースをサーバーの標準エラー出力にダンプさせます。一般的には、この出力はエラーログに記録されます。
クライアントプログラムでスレッドを使用している場合は、--enable-thread-safe-client
configure
オプションを使ってスレッドセーフなバージョンの
MySQL
クライアントライブラリをコンパイルする必要があります。これにより
libmysqlclient_r
ライブラリが作成され、それによってスレッドしたアプリケーションをリンクします。How to Make a Threaded Client
を参照してください。
一部の機能では、COMPRESS()
関数や
UNCOMPRESS()
関数、クライアント/サーバープロトコルの圧縮などの圧縮ライブラリサポートを使ってサーバーを構築する必要があります。--with-zlib-dir=no|bundled|
オプションは、圧縮ライブラリサポートを制御できます。値
DIRno
は、圧縮サポートを明示的に無効にします。bundled
は、MySQL ソースにバンドルされている
zlib
ライブラリを使用するようにします。DIR
のパス名は、圧縮ライブラリソースを探す場所を指定します。
--with-big-tables
オプションを使って、大きいテーブルのサポートを利用して
MySQL を構築できます。
このオプションではテーブルの行カウントを保存する変数を
unsigned long
ではなく unsigned long
long で宣言します。これによりおよそ
1.844E+19
((232)2)
行を 232 (~4.295E+09)
行の代わりに保持できます。以前は
-DBIG_TABLES
コンパイラに手動で渡してこの機能を有効にする必要がありました。
mysqld の
--bootstrap、--skip-grant-tables、および
--init-file
オプションを無効にするときは、--disable-grant-options
オプションを使って
configure
を実行します。Windows
では、configure.js
スクリプトが
DISABLE_GRANT_OPTIONS
フラグを認識し、同じ効果を持ちます。この機能は
MySQL 5.1.15 より利用できます。
このオプションを使うと、MySQL Community Server
の機能を有効にできます。ステートメントプロファイリングを有効にするには、個別の機能で
--enable-profiling
などの追加のオプションが必要になる場合があります。このオプションは
MySQL 5.1.24 で追加されました。MySQL 5.1.28
ではデフォルトで有効になっています。無効にするには、--disable-community-features
を使用します。
--enable-community-features
が指定されていると、--enable-profiling
オプションは、SHOW
PROFILE および
SHOW PROFILES
ステートメントによって公開されるステートメントプロファイリング機能を有効にします。詳細は、項8.5.5.33. 「SHOW PROFILES 構文」
を参照してください。このオプションは MySQL
5.1.24 で追加されました。MySQL 5.1.28
ではデフォルトで有効になっています。無効にするには、--disable-profiling
を使用します。
特殊なオペレーティングシステムに関するオプションは、項2.13. 「オペレーティングシステムに特化した注釈」 を参照してください。
MySQL のセキュア (暗号化した) な接続のサポート設定に関するオプションは、Using SSL Connections を参照してください。
configure オプションのいくつかはプラグインの選択およびビルドに適用されます。
--with-plugins=PLUGIN[,PLUGIN]... --with-plugins=GROUP--with-plugin-PLUGIN--without-plugin-PLUGIN
PLUGIN は
csv あるいは
archive
など個別のプラグイン名です。
略語では、GROUP は
none
(プラグインの選択なし) あるいは
all
(すべてのプラグインの選択)
など設定グループ名を表します。
プラグインを静的 (サーバーにコンパイル)
あるいは動的 (使用前に
INSTALL
PLUGIN
ステートメントでインストールが必要な動的ライブラリとしてビルドされる)
なプラグインとしてビルドできます。プラグインの中には静的あるいは動的ビルドをサポートしていないものもあります。
configure --help はプラグインの関する以下の情報を網羅しています。
プラグイン関連オプション
利用可能なすべてのプラグイン名
各プラグインの、その目的の説明、サポートしているビルドの種類 (静的あるいは動的)、およびそれが属するプラグインのグループ
--with-plugins
にはコンマ区切られた、あるいはプラグイングループ名の
1
つ以上のプラグイン名のリストがあります。名前付きプラグインは静的プラグインとしてのビルド用に構成されています。
--with-plugin-
は所定のプラグインを静的なプラグインとしてビルドできるように設定します。
PLUGIN
--without-plugin-
は所定のプラグインのビルドを無効にします。
PLUGIN
プラグインが --with あるいは
--without オプションの両方で
名前がある場合、その結果は定義できません。
明示的な選択あるいは無効になっていないプラグインは、動的ビルドをサポートしている場合に動的にビルドに選択され、動的ビルドをサポートしていない場合は選択されません。(このように、プラグインのオプションが与えられない場合、動的ビルドをサポートするすべてのプラグインは動的プラグインとしてのビルドに選択されます。動的ビルドをサポートしていないプラグインはビルドされません)。
