configure スクリプトを使用することによって MySQL のソース ディストリビューションの設定を柔軟にできます。通常は、configure コマンド ラインのオプションを使用してこれを行います。また、特定の環境変数を使ってconfigure を変更することもできます。項2.14. 「環境変数」 参照。configure がサポートしているオプションの完全なリストを表示するには、このコマンドを実行します。
shell> ./configure --help
利用できる configure オプションを以下説明します。
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 オプション
ファイルで変更可能です。項3.3.2. 「オプションファイルの使用」
参照。
Unix を使用していて MySQL ソケット
ファイルのロケーションをデフォルトのロケーション(通常は
/tmp あるいは
/var/run
のディレクトリにある)
とは別の場所に変更するには、以下のような
configure
コマンドを使用します。
shell>./configure \--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock
ソケットのファイル名は絶対パス名にする必要があります。MySQL
のオプション
ファイルを使用してサーバの起動時に
mysql.sock
のロケーションを変更することもできます。項B.1.4.5. 「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"
egcs 1.0.3a:
CC=gcc CXX=gcc CXXFLAGS="-O3 -felide-constructors \ -fno-exceptions -fno-rtti"
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.5. 「MySQL AB でコンパイルした MySQL バイナリ」 参照。Configulation の設定の中には少し微調整して高速のバイナリをビルドできるものもありますが、しかしこれらの設定は熟練したユーザー向けです。項6.5.4. 「MySQL の速度に対するコンパイルとリンクの影響」 参照。
コンパイラでのビルドに失敗してエラーが発生した場合、あるいはリンカが共有ライブラリ
libmysqlclient.so.
(NN はバージョン番号)
を作成できない場合、--disable-shared
オプションを configure
することでこの問題を回避できます。.この場合、configure
は共有
libmysqlclient.so.
ライブラリをビルドしません。
N
デフォルトでは、MySQL は latin1
(cp1252 西部ヨーロッパ)
文字セットを使用します。デフォルトの設定を変更するには、--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。項4.10.1. 「データおよびソート用キャラクタ セット」
参照。(その他の文字セットも利用できます。現在のリストは
./configure --help
の出力をチェックしてください。)
デフォルトで照合を指定することもできます。MySQL
はデフォルトで latin1_swedish_ci
照合を使用しています。この設定を変更するには
--with-collation
オプションを使用します。
shell> ./configure --with-collation=COLLATION
文字セットと照合の両方を変更するには、--with-charset
および --with-collation
オプションを使用します。文字セットの照合は規定の照合になります。(各文字列セットにどの照合を使用するかを決めるには
SHOW COLLATION
ステートメントを使用します。
警告:
テーブル作成後に文字セットを変更するには
myisamchk -r -q
--set-collation=collation_name
をすべての MyISAM
テーブルに実行する必要があります。.さもなければ、インデックスの分類が正しく行われない場合があります。この問題は
MySQL
のインストール、テーブルの作成、および
異なる文字セットを MySQL
に設定してそれを再インストールする際に起こります。
configure オプション
--with-extra-charsets=
で、他にどの文字セットをサーバにコンパイルするか定義できます。LISTLIST
は以下のいずれかになります。
スペースで区切られた文字列セット名のリスト
complex
は動的にロードできないすべての文字セットを含む
all
はバイナリのすべての文字セットを含む
サーバとクライアントで文字変換するクライアントは
SET NAMES
ステートメントを使用する必要があります。項12.5.3. 「SET 構文」、および
項9.4. 「接続のキャラクタセットおよび照合順序」 参照。
MySQL をデバッグ コードで設定するには
--with-debug
オプションを使用します。
shell> ./configure --with-debug
これによりエラーを検出し状況に関する出力を提供する安全メモリ アロケータを含むことができます。Debugging a MySQL Server 参照。
MySQL 5.1.12 では、--with-debug
を使用して MySQL
のデバッグのサポートを可能にしサーバの起動時に
--debug="d,parser_debug"
オプションを使用できるようにします。これにより
SQL ステートメントの処理に使用される Bison
parser に parser
トレースをサーバの標準エラー出力にダンプさせます。一般的には、この出力はエラーログに記録されます。
クライアント
プログラムがスレッドを使用しているので、MySQL
クライアント ライブラリのスレッド
セーフなバージョンを
--enable-thread-safe-client
設定オプションでコンパイルする必要があります。これにより
libmysqlclient_r
ライブラリが作成され、それによってスレッドしたアプリケーションをリンクします。項23.2.16. 「スレッド付きクライアントを作る方法」
参照。
--with-big-tables
オプションを使用して大きなテーブルのサポートが付き
MySQL をビルドできます。
このオプションではテーブルの行カウントを保存する変数をunsigned
long ではなく unsigned long
long で宣言します。これによりおよそ
1.844E+19
((232)2)
行を 232 (~4.295E+09)
行の代わりに保持できます。以前は
-DBIG_TABLES
コンパイラに手動で渡してこの機能を有効にする必要がありました。
configure を
--disable-grant-options
オプションで実行し、--bootstrap,
--skip-grant-tables、および
--init-file オプションを
mysqld
に対して無効にします。Windows
では、configure.js スクリプトが
DISABLE_GRANT_OPTIONS
フラグを認識し、同じ効果を持ちます。この機能は
MySQL 5.1.15より利用できます。
特殊なオペレーティング システムに関するオプションは、項2.13. 「オペレーティング システムに特化した注釈」 を参照してください。
MySQL のセキュア (暗号化した) な接続のサポート設定に関するオプションは、項4.8.7.2. 「SSL接続」 を参照してください。
configure
オプションのいくつかはプラグインの選択およびビルドに適用されます。プラグインを静的
(サーバにコンパイル) あるいは動的
(使用前に INSTALL PLUGIN
ステートメントでインストールが必要な動的ライブラリとしてビルドされる)
なプラグインとしてビルドできます。プラグインの中には静的あるいは動的ビルドをサポートしていないものもあります。
configure --help はプラグインの関する以下の情報を網羅しています。
プラグイン関連オプション
利用可能なすべてのプラグイン名
各プラグインの、その目的の説明、サポートしているビルドの種類(静的あるいは動的)、およびそれが属するプラグイン のグループ
以下の configure オプションでプラグインの選択および無効にします。
--with-plugins=PLUGIN[,PLUGIN]... --with-plugins=GROUP--with-plugin-PLUGIN--without-plugin-PLUGIN
PLUGIN は csv
あるいは archive
など個別のプラグイン名です。
略語では、GROUP は
none (プラグインの選択なし)
あるいは all
(すべてのプラグインの選択)
など設定グループ名を表します。
--with-plugins
にはコンマ区切られた、あるいはプラグイン
グループ名の一つ以上のプラグイン名のリストがあります。名前付きプラグインは静的プラグインとしてのビルド用に構成されています。
--with-plugin-
は所定のプラグインを静的なプラグインとしてビルドできるように設定します。
PLUGIN
--without-plugin-
は所定のプラグインのビルドを無効にします。
PLUGIN
プラグインが --with あるいは
--without
オプションの両方で 名前がある場合、その結果は定義できません。
明示的な選択あるいは無効になっていないプラグインは、動的ビルドをサポートしている場合に動的にビルドに選択され、動的ビルドをサポートしていない場合は選択されません。(このように、プラグインのオプションが与えられない場合、動的ビルドをサポートするすべてのプラグインは動的プラグインとしてのビルドに選択されます。動的ビルドをサポートしていないプラグインはビルドされません。)
