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
            オプションの両方で 名前がある場合、その結果は定義できません。
          
明示的な選択あるいは無効になっていないプラグインは、動的ビルドをサポートしている場合に動的にビルドに選択され、動的ビルドをサポートしていない場合は選択されません。(このように、プラグインのオプションが与えられない場合、動的ビルドをサポートするすべてのプラグインは動的プラグインとしてのビルドに選択されます。動的ビルドをサポートしていないプラグインはビルドされません。)

