MySQLのお勉強!

MySQL TOP

2.9.4 MySQL ソース構成オプション

CMake プログラムを使用すると、MySQL ソース配布の構成方法を大幅に制御できます。通常これは、CMake コマンド行でオプションを使用して行います。CMake がサポートするオプションの詳細は、トップレベルのソースディレクトリで次のコマンドのいずれかを実行します。

shell> cmake . -LH
shell> ccmake .

特定の環境変数を使用して CMake に影響を与えることもできます。セクション2.12「環境変数」を参照してください。

次の表は、使用可能な CMake オプションを示しています。デフォルトカラムで、PREFIXCMAKE_INSTALL_PREFIX オプションの値を意味します。これは、インストールのベースディレクトリを指定します。この値は、一部のインストールサブディレクトリの親の場所として使用されます。

表 2.11 MySQL ソース構成オプションリファレンス (CMake)

形式 説明 デフォルト 導入 削除
BUILD_CONFIG 公式なリリースと同じビルドオプションを使用
CMAKE_BUILD_TYPE 生成するビルドのタイプ RelWithDebInfo
CMAKE_CXX_FLAGS C++ コンパイラのフラグ
CMAKE_C_FLAGS C コンパイラのフラグ
CMAKE_INSTALL_PREFIX インストールの基本ディレクトリ /usr/local/mysql
COMPILATION_COMMENT コンパイル環境に関するコメント
CPACK_MONOLITHIC_INSTALL パッケージビルドが単独のファイルを生成するかどうか OFF
DEFAULT_CHARSET デフォルトのサーバー文字セット latin1
DEFAULT_COLLATION デフォルトのサーバー照合順序 latin1_swedish_ci
ENABLED_LOCAL_INFILE LOAD DATA INFILE に LOCAL を有効にするかどうか OFF
ENABLED_PROFILING クエリープロファイリングコードを有効にするかどうか ON
ENABLE_DEBUG_SYNC Debug Sync サポートを有効にするかどうか ON
ENABLE_DOWNLOADS オプションファイルをダウンロードするかどうか OFF
ENABLE_DTRACE DTrace サポートをインクルードするかどうか
ENABLE_GCOV gcov サポートをインクルードするかどうか 5.6.3
ENABLE_GPROF gprof の有効化 (Linux ビルドのみに最適化) OFF 5.6.6
IGNORE_AIO_CHECK -DBUILD_CONFIG=mysql_release とともに、libaio チェックを無視する OFF 5.6.1
INNODB_PAGE_ATOMIC_REF_COUNT アトミックページ参照のカウントを有効または無効にする ON 5.6.16
INSTALL_BINDIR ユーザー実行可能ファイルディレクトリ PREFIX/bin
INSTALL_DOCDIR ドキュメントディレクトリ PREFIX/docs
INSTALL_DOCREADMEDIR README ファイルディレクトリ PREFIX
INSTALL_INCLUDEDIR Header ファイルディレクトリ PREFIX/include
INSTALL_INFODIR Info ファイルディレクトリ PREFIX/docs
INSTALL_LAYOUT 事前定義インストールレイアウトの選択 STANDALONE
INSTALL_LIBDIR Library ファイルディレクトリ PREFIX/lib
INSTALL_MANDIR Manual ページディレクトリ PREFIX/man
INSTALL_MYSQLSHAREDIR 共有データディレクトリ PREFIX/share
INSTALL_MYSQLTESTDIR mysql-test ディレクトリ PREFIX/mysql-test
INSTALL_PLUGINDIR Plugin ディレクトリ PREFIX/lib/plugin
INSTALL_SBINDIR サーバー実行可能ファイルディレクトリ PREFIX/bin
INSTALL_SCRIPTDIR Scripts ディレクトリ PREFIX/scripts
INSTALL_SHAREDIR aclocal/mysql.m4 インストールディレクトリ PREFIX/share
INSTALL_SQLBENCHDIR sql-bench ディレクトリ PREFIX
INSTALL_SUPPORTFILESDIR その他のサポートファイルディレクトリ PREFIX/support-files
MEMCACHED_HOME memcached へのパス [none]
MYSQL_DATADIR データディレクトリ
MYSQL_MAINTAINER_MODE MySQL 管理者固有の開発環境を有効にするかどうか OFF
MYSQL_PROJECT_NAME Windows/OS X プロジェクト名 3306 5.6.5
MYSQL_TCP_PORT TCP/IP ポート番号 3306
MYSQL_UNIX_ADDR Unix ソケットファイル /tmp/mysql.sock
ODBC_INCLUDES ODBC インクルードディレクトリ
ODBC_LIB_DIR ODBC ライブラリディレクトリ
OPTIMIZER_TRACE オプティマイザのトレースをサポートするかどうか 5.6.3
SUNPRO_CXX_LIBRARY Solaris 10+ のクライアントリンクライブラリ 5.6.20
SYSCONFDIR オプションファイルディレクトリ
TMPDIR tmpdir のデフォルト値 5.6.16
WITHOUT_SERVER サーバーをビルドしない OFF
WITHOUT_xxx_STORAGE_ENGINE ストレージエンジン xxx をビルドから除外
WITH_ASAN AddressSanitizer 有効 OFF 5.6.15
WITH_BUNDLED_LIBEVENT ndbmemcache のビルド時にバンドルされた libevent を使用 ON
WITH_BUNDLED_MEMCACHED ndbmemcache のビルド時にバンドルされた memcached を使用 ON
WITH_CLASSPATH Java 用 MySQL Cluster Connector のビルド時に使用するクラスパス。デフォルトは空の文字列です。
WITH_DEBUG デバッグサポートをインクルードするかどうか OFF
WITH_DEFAULT_COMPILER_OPTIONS デフォルトのコンパイラオプションを使用するかどうか ON 5.6.6
WITH_DEFAULT_FEATURE_SET デフォルトの機能セットを使用するかどうか ON 5.6.6
WITH_EDITLINE どの libedit/editline ライブラリを使用するか bundled 5.6.12
WITH_EMBEDDED_SERVER 組み込みサーバーをビルドするかどうか OFF
WITH_EMBEDDED_SHARED_LIBRARY 共有組み込みサーバーライブラリをビルドするかどうか OFF 5.6.17
WITH_ERROR_INSERT NDB ストレージエンジンのエラーインジェクションを有効化。本番用のバイナリのビルドには使用しないでください。 OFF
WITH_EXTRA_CHARSETS どの追加文字セットをインクルードするか all
WITH_INNODB_MEMCACHED memcached 共有ライブラリを生成するかどうか。 OFF
WITH_LIBEDIT バンドルされた libedit ライブラリを使用 ON 5.6.12
WITH_LIBEVENT どの libevent ライブラリを使用するか bundled 5.6.6
WITH_LIBWRAP libwrap (TCP ラッパー) サポートをインクルードするかどうか OFF
WITH_NDBCLUSTER_STORAGE_ENGINE NDB ストレージエンジンのビルド ON
WITH_NDBMTD マルチスレッドのデータノードをビルド。 ON
WITH_NDB_BINLOG mysqld によるバイナリのロギングをデフォルトで有効化。 ON
WITH_NDB_DEBUG テストまたはトラブルシューティング用のデバッグビルドを生成。 OFF
WITH_NDB_JAVA Java および ClusterJ のビルドのサポートを有効化。デフォルトで有効。MySQL Cluster のみでサポート。 ON
WITH_NDB_PORT このオプションでビルドされた管理サーバーが使用するデフォルトポート。ビルドにこのオプションが使用されなかった場合、管理サーバーのデフォルトポートは 1186 です。 [none]
WITH_NDB_TEST NDB API テストプログラムをインクルード。 OFF
WITH_READLINE バンドルされた readline ライブラリを使用 OFF 5.6.5
WITH_SSL SSL サポートのタイプ bundled
WITH_UNIXODBC unixODBC サポートの有効化 OFF
WITH_VALGRIND Valgrind ヘッダーファイルをコンパイルするかどうか OFF
WITH_ZLIB zlib サポートのタイプ system
WITH_xxx_STORAGE_ENGINE ストレージエンジン xxx をサーバーに静的にコンパイル

次のセクションでは、CMake オプションについてより詳しく説明します。

boolean オプションでは、値を 1 または ON に指定してオプションを有効にするか、0 または OFF に指定して無効にします。

多くのオプションはコンパイル時のデフォルトを構成し、それらはサーバー起動時にオーバーライドできます。たとえば、デフォルトのインストールベースディレクトリ、TCP/IP ポート番号、および Unix ソケットファイルを構成する CMAKE_INSTALL_PREFIXMYSQL_TCP_PORT、および MYSQL_UNIX_ADDR の各オプションは、サーバー起動時に mysqld--basedir--port、および --socket オプションで変更できます。該当する場合は、構成オプションの説明で対応する mysqld スタートアップオプションを示します。

一般オプション

  • -DBUILD_CONFIG=mysql_release

    このオプションは、オラクルが公式な MySQL リリースのバイナリ配布を生成するために使用するのと同じビルドオプションでソース配布を構成します。

  • -DCMAKE_BUILD_TYPE=type

    生成するビルドのタイプ

    • RelWithDebInfo: 最適化を有効にし、デバッグ情報を生成します。これはデフォルトの MySQL ビルドタイプです。

    • Debug: 最適化を無効にし、デバッグ情報を生成します。このビルドタイプは、WITH_DEBUG オプションが有効な場合も使用されます。つまり、-DWITH_DEBUG=1-DCMAKE_BUILD_TYPE=Debug と同じ効果を持ちます。

  • -DCPACK_MONOLITHIC_INSTALL=bool

    このオプションは、make package 操作が複数のインストールパッケージファイルを作成するか、単独のファイルを作成するかに影響します。無効の場合、この操作は複数のインストールパッケージファイルを作成します。これは完全な MySQL インストールのサブセットのみをインストールする場合に便利です。有効の場合、すべてをインストールするための単独のファイルを作成します。

インストールレイアウトオプション

CMAKE_INSTALL_PREFIX オプションは、ベースインストールディレクトリを示します。コンポーネントの場所を示す、INSTALL_xxx という形式の名前を持つその他のオプションは、プリフィクスに相対的なものとして解釈され、その値は相対パス名です。それらの値はプリフィクスを含みません。

  • -DCMAKE_INSTALL_PREFIX=dir_name

    インストールのベースディレクトリ。

    この値は、サーバー起動時に --basedir オプションで設定できます。

  • -DINSTALL_BINDIR=dir_name

    ユーザープログラムをインストールする場所。

  • -DINSTALL_DOCDIR=dir_name

    ドキュメントをインストールする場所。

  • -DINSTALL_DOCREADMEDIR=dir_name

    README ファイルをインストールする場所。

  • -DINSTALL_INCLUDEDIR=dir_name

    ヘッダーファイルをインストールする場所。

  • -DINSTALL_INFODIR=dir_name

    Info ファイルをインストールする場所。

  • -DINSTALL_LAYOUT=name

    事前定義インストールレイアウトを選択します。

    • STANDALONE: .tar.gz および .zip パッケージで使用されるのと同じレイアウト。これはデフォルトです。

    • RPM: RPM パッケージと同様のレイアウト。

    • SVR4: Solaris パッケージレイアウト。

    • DEB: DEB パッケージレイアウト (実験的)。

    事前定義のレイアウトを選択できますが、ほかのオプションを指定することによって、個々のコンポーネントのインストール場所を変更できます。例:

    shell> cmake . -DINSTALL_LAYOUT=SVR4 -DMYSQL_DATADIR=/var/mysql/data
  • -DINSTALL_LIBDIR=dir_name

    ライブラリファイルをインストールする場所。

  • -DINSTALL_MANDIR=dir_name

    マニュアルページをインストールする場所。

  • -DINSTALL_MYSQLSHAREDIR=dir_name

    共有データファイルをインストールする場所。

  • -DINSTALL_MYSQLTESTDIR=dir_name

    mysql-test ディレクトリをインストールする場所。MySQL 5.6.12 では、このディレクトリのインストールを抑制するには、オプションを明示的に空の値にセットします (-DINSTALL_MYSQLTESTDIR=)。

  • -DINSTALL_PLUGINDIR=dir_name

    プラグインディレクトリの場所。

    この値は、サーバー起動時に --plugin_dir オプションで設定できます。

  • -DINSTALL_SBINDIR=dir_name

    mysqld サーバーをインストールする場所。

  • -DINSTALL_SCRIPTDIR=dir_name

    mysql_install_db をインストールする場所。

  • -DINSTALL_SHAREDIR=dir_name

    aclocal/mysql.m4 をインストールする場所。

  • -DINSTALL_SQLBENCHDIR=dir_name

    sql-bench ディレクトリをインストールする場所。このディレクトリのインストールを抑制するには、オプションを明示的に空の値にセットします (-DINSTALL_SQLBENCHDIR=)。

  • -DINSTALL_SUPPORTFILESDIR=dir_name

    追加のサポートファイルをインストールする場所。

  • -DMYSQL_DATADIR=dir_name

    MySQL データディレクトリの場所。

    この値は、サーバー起動時に --datadir オプションで設定できます。

  • -DODBC_INCLUDES=dir_name

    ODBC インクルードディレクトリの場所。Connector/ODBC の構成中に使用されることがあります。

  • -DODBC_LIB_DIR=dir_name

    ODBC ライブラリディレクトリの場所。Connector/ODBC の構成中に使用されることがあります。

  • -DSYSCONFDIR=dir_name

    デフォルトの my.cnf オプションファイルディレクトリ。

    この場所はサーバー起動時にはセットできませんが、--defaults-file=file_name オプションを使用して、指定されたオプションファイルでサーバーを起動できます。ここで、file_name はファイルへのフルパス名です。

  • -DTMPDIR=dir_name

    tmpdir システム変数に使用されるデフォルトの場所。指定しない場合は、値はデフォルトで P_tmpdir in <stdio.h> になります。このオプションは MySQL 5.6.16 で追加されました。

ストレージエンジンオプション

ストレージエンジンはプラグインとしてビルドされます。プラグインは、静的モジュール (サーバー内にコンパイル) または動的モジュール (使用する前に、INSTALL PLUGIN ステートメントまたは --plugin-load オプションを使用してサーバーにインストールする必要のあるダイナミックライブラリとしてビルド) としてビルドできます。一部のプラグインは、静的または動的ビルドをサポートしない場合があります。

MyISAMMERGEMEMORY、および CSV エンジンは必須 (必ずサーバー内にコンパイル) で、明示的にインストールする必要はありません。

ストレージエンジンをサーバー内に静的にコンパイルするには、-DWITH_engine_STORAGE_ENGINE=1 を使用します。許可される engine の値は、ARCHIVEBLACKHOLEEXAMPLEFEDERATEDINNOBASE (InnoDB)、NDB または NDBCLUSTER (NDB)、PARTITION (パーティション化のサポート)、および PERFSCHEMA (Performance Schema) です。例:

-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
注記

WITH_NDBCLUSTER_STORAGE_ENGINE は、MySQL Cluster を MySQL Cluster ソースを使用してビルドする場合のみサポートされます。ほかの MySQL ソースツリーまたは配布でのクラスタ化のサポートを有効にするために使用することはできません。MySQL Cluster ソース配布では、デフォルトで有効です。詳しくは、セクション18.2.2.3「Linux でのソースからの MySQL Cluster のビルド」およびセクション18.2.3.2「Windows でのソースからの MySQL Cluster のコンパイルとインストール」を参照してください。

ストレージエンジンをビルドから除外するには、-DWITHOUT_engine_STORAGE_ENGINE=1 を使用します。例:

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
-DWITHOUT_PARTITION_STORAGE_ENGINE=1

あるストレージエンジンに対して -DWITH_engine_STORAGE_ENGINE-DWITHOUT_engine_STORAGE_ENGINE も指定されていない場合、そのエンジンは共有モジュールとしてビルドされるか、あるいは共有モジュールとしてビルドできない場合は除外されます。

機能オプション

  • -DCOMPILATION_COMMENT=string

    コンパイル環境に関する説明コメント。

  • -DDEFAULT_CHARSET=charset_name

    サーバーの文字セット。デフォルトでは、MySQL は latin1 (cp1252 西部ヨーロッパ) 文字セットを使用します。

    charset_name は、binaryarmscii8asciibig5cp1250cp1251cp1256cp1257cp850cp852cp866cp932dec8eucjpmseuckrgb2312gbkgeostd8greekhebrewhp8keybcs2koi8rkoi8ulatin1latin2latin5latin7maccemacromansjisswe7tis620ucs2ujisutf8utf8mb4utf16utf16leutf32 のいずれかにできます。許可される文字セットは、cmake/character_sets.cmake ファイルに CHARSETS_AVAILABLE の値としてリストされています。

    この値は、サーバー起動時に --character_set_server オプションで設定できます。

  • -DDEFAULT_COLLATION=collation_name

    サーバーの照合順序。デフォルトでは、MySQL は latin1_swedish_ci を使用します。各文字セットにどの照合順序を使用するかを決めるには SHOW COLLATION ステートメントを使用します。

    この値は、サーバー起動時に --collation_server オプションで設定できます。

  • -DENABLE_DEBUG_SYNC=bool

    Debug Sync 機能をサーバーにコンパイルするかどうか。この機能はテストとデバッグに使用されます。このオプションはデフォルトで有効ですが、MySQL でデバッグが有効に構成されていない場合は効果はありません。デバッグが有効で、Debug Sync を無効にする場合は、-DENABLE_DEBUG_SYNC=0 を使用します。

    コンパイルされる場合、実行時には Debug Sync はデフォルトで無効です。有効にするには、mysqld--debug-sync-timeout=N オプションを使用して起動します。ここで、N は 0 より大きいタイムアウト値です。(デフォルト値は 0 で、Debug Sync を無効にします。)N はそれぞれの同期ポイントのデフォルトのタイムアウトになります。

    Debug Sync 機能および同期点の使用方法についての説明は、「MySQL Internals: Test Synchronization」を参照してください。

  • -DENABLE_DOWNLOADS=bool

    オプションファイルをダウンロードするかどうか。たとえば、このオプションを有効にすると CMake は、ユニットテストを実行するためにテストスイートが使用する Google Test 配布をダウンロードします。

  • -DENABLE_DTRACE=bool

    DTrace プローブのサポートをインクルードするかどうか。DTrace については、セクション5.4「DTrace を使用した mysqld のトレース」を参照してください。

  • -DENABLE_GCOV=bool

    gcov サポートをインクルードするかどうか (Linux のみ)。