configure
スクリプトを使用すると、MySQL
ディストリビューションの設定を自由に調整できます。設定方法の調整は、通常は
configure
コマンドラインでオプションを使用して行います。また、環境変数を使用して
configure
を調整することもできます。See
付録 F. 環境変数。
configure
がサポートするオプションの一覧が必要な場合は、以下のコマンドを実行します。
shell> ./configure --help
ここでは、広く使用されている
configure
オプションの一部を説明します。
MySQL
のクライアントライブラリとクライアントプログラムだけをコンパイルして、サーバをコンパイルしない場合は、以下のように
--without-server
オプションを使用する。
shell> ./configure --without-server
C++
コンパイラがない場合は、mysql
はコンパイルを実行しない(mysql は C++
を必要とする唯一のクライアントプログラム)。その場合は、configure
の、C++
コンパイラをテストするコードを削除し、--without-server
オプションを指定して
./configure
を実行する。compile
ステップは依然として mysql
のビルドを試行するが、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
に変更される。これらのオプションは、MySQL
をコンパイルした後に、オプション設定ファイルで変更できる。
See 項4.1.2. 「my.cnf
オプション設定ファイル」。
Unix を使用しており、MySQL
ソケットファイルをデフォルトの場所(通常は、/tmp
または
/var/run
)以外の場所に配置する場合は、以下のような
configure
コマンドを使用する。
shell> ./configure --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock
注意:
指定するファイルは絶対パス名でなければならない。
また、後で MySQL
オプション設定ファイルを使用して、場所
mysql.sock
を変更することもできる。 See
項A.4.5. 「MySQL ソケットファイル /tmp/mysql.sock
の保護または変更方法」。
静的にリンクされたプログラムをコンパイルする場合(バイナリディストリビューションの作成、高速化、一部の
Red Hat Linux
ディストリビューションの問題の回避などのために)、以下のような
configure
コマンドを実行します。
shell>./configure --with-client-ldflags=-all-static \
--with-mysqld-ldflags=-all-static
gcc
を使用しており、libg++
または
libstdc++
がインストールされていない場合、C++
コンパイラとして gcc
を使用するように configure
を設定することができる。
shell> CC=gcc CXX=gcc ./configure
C++ コンパイラとして gcc
を使用すると、libg++
または
libstdc++
へのリンクは試行されない。上記のライブラリがインストールされている場合でも、これらのライブラリの一部のバージョンは過去に
MySQL
ユーザにとって未知の問題を引き起こしたことがあるので、このように処理することをお勧めする。
以下に、使用しているコンパイラに応じて設定する一般的な環境変数をいくつか示す。
コンパイラ | 推奨オプション |
gcc 2.7.2.1 | 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" |
ほとんどの場合、上記の表に記載されているオプションを使用して、configure 行に以下のオプションを追加して、MySQL バイナリを適度に最適化することができる。
--prefix=/usr/local/mysql --enable-assembler \ --with-mysqld-ldflags=-all-static
つまり、最新のすべての gcc バージョン向けの完全な configure 行は、以下のようなものになる。
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://www.mysql.com/)で提供するバイナリはすべて、完全に最適化されてコンパイルされており、ほとんどのユーザにとって最適である。See 項2.2.8. 「MySQL AB がコンパイルした MySQL バイナリ」。 さらに高速なバイナリを作成するためにユーザが微調整できる設定がいくつかあるが、これは上級ユーザ向けである。 See 項5.5.3. 「MySQL の速度に対するコンパイルとリンクの影響」。
ビルドが失敗し、コンパイラまたはリンカが共有ライブラリ
libmysqlclient.so.#
(‘#
’
はバージョン番号です)を作成できないというエラーが生成された場合は、configure
に --disable-shared
オプションを指定してこの問題に対処できる。この場合、configure
は共有ライブラリ
libmysqlclient.so.#
をビルドしない。
非 NULL
属性のカラム(つまり、NULL
にすることが許されないカラム)に
DEFAULT
の値を使用しないように
MySQL をコンフィギャすることができる。 See
項1.8.5.2. 「NOT NULL
および DEFAULT
値制約」。
shell> CXXFLAGS=-DDONT_USE_DEFAULT_FIELDS ./configure
MySQL は、デフォルトで ISO-8859-1 (Latin1)
キャラクタセットを使用する。デフォルトのキャラクタセットを変更するには、以下のように
--with-charset
オプションを使用する。
shell> ./configure --with-charset=CHARSET
CHARSET
は、big5
、cp1251
、cp1257
、czech
、danish
、dec8
、dos
、euc_kr
、gb2312
、gbk
、german1
、hebrew
、hp8
、hungarian
、koi8_ru
、koi8_ukr
、latin1
、latin2
、sjis
、swe7
、tis620
、ujis
、usa7
、または
win1251ukr
のいずれかである。
See 項4.7.1. 「データおよびソート用キャラクタセット」。
サーバとクライアントの間で文字を変換する場合は、SET
CHARACTER SET
コマンドに注目する。 See
項5.5.6. 「SET
構文」。
警告:
テーブルを作成した後にキャラクタセットを変更する場合は、すべてのテーブルで
myisamchk -r -q
--set-character-set=charset
を実行する必要がある。これを行わないと、インデックスが正しくソートされないことがある(MySQL
をインストールし、いくつかのテーブルを作成し、別のキャラクタセットを使用するように
MySQL をコンフィギャし直して、その MySQL
を再インストールした場合に、この問題が起きる可能性がある)。
--with-extra-charsets=LIST
オプションを使用して、サーバにコンパイルする追加のキャラクタセットを定義できる。
この場合、LIST
は、カンマで区切ったキャラクタセットのリスト、動的にロードできないすべての文字を含めるための
complex
、またはすべてのキャラクタセットをバイナリに含めるための
all
のいずれかである。
コードをデバッグするように MySQL
をコンフィギャするには、--with-debug
オプションを使用する。
shell> ./configure --with-debug
これによって、エラーを検出し、エラーの内容に関する出力を提供する安全なメモリアロケータが組み込まれる。 See 項E.1. 「MySQL サーバのデバッグ」。
クライアントプログラムがスレッドを使用する場合、--enable-thread-safe-client
configure オプションを使用して、MySQL
クライアントライブラリのスレッドセーフバージョンをコンパイルする必要もある。これによって、スレッドアプリケーションとリンクさせる
libmysqlclient_r
ライブラリが作成される。 See
項11.1.14. 「スレッドクライアントの作成方法」。
特定のシステムに関係するオプションについては、このマニュアルのシステム固有のセクションを参照。 See 項2.6. 「オペレーティングシステム固有の注意事項」。
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.