MySQL 5.1 リファレンスマニュアル :: 2 MySQL のインストールと更新 :: 2.9 ソースのディストリビューションを使用した MySQL のインストール :: 2.9.2 典型的な configure オプション
« 2.9.1 ソースのインストール概要

2.9.3 開発ソース ツリーからのインストール »
Section Navigation      [Toggle]
  • 2.9 ソースのディストリビューションを使用した MySQL のインストール
  • 2.9.1 ソースのインストール概要
  • 2.9.2 典型的な configure オプション
  • 2.9.3 開発ソース ツリーからのインストール
  • 2.9.4 MySQL のコンパイルに関する問題
  • 2.9.5 MIT-pthreads ノート
  • 2.9.6 Windows にソースから MySQL をインストールする
  • 2.9.7 Windows で MySQL クライアントをコンパイルする

2.9.2. 典型的な configure オプション

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/mysql
    shell> ./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.N (N はバージョン番号) を作成できない場合、--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=LIST で、他にどの文字セットをサーバにコンパイルするか定義できます。LIST は以下のいずれかになります。

    • スペースで区切られた文字列セット名のリスト

    • 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 オプションの両方で 名前がある場合、その結果は定義できません。

    明示的な選択あるいは無効になっていないプラグインは、動的ビルドをサポートしている場合に動的にビルドに選択され、動的ビルドをサポートしていない場合は選択されません。(このように、プラグインのオプションが与えられない場合、動的ビルドをサポートするすべてのプラグインは動的プラグインとしてのビルドに選択されます。動的ビルドをサポートしていないプラグインはビルドされません。)

Copyright © 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates