Documentation Home
MySQL 8.0 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 36.1Mb
PDF (A4) - 36.1Mb
HTML Download (TGZ) - 10.0Mb
HTML Download (Zip) - 10.1Mb


このページは機械翻訳したものです。

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

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

cmake . -LH
ccmake .

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

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

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

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

CMake オプションリファレンス

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

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

形式 説明 デフォルト 導入 削除
ADD_GDB_INDEX 生成を有効にするかどうか。バイナリの gdb_index セクション 8.0.18
BUILD_CONFIG 公式なリリースと同じビルドオプションを使用
BUNDLE_RUNTIME_LIBRARIES ランタイムライブラリと Windows 用のサーバー MSI および Zip パッケージのバンドル OFF
CMAKE_BUILD_TYPE 生成するビルドのタイプ RelWithDebInfo
CMAKE_CXX_FLAGS C++ コンパイラのフラグ
CMAKE_C_FLAGS C コンパイラのフラグ
CMAKE_INSTALL_PREFIX インストールの基本ディレクトリ /usr/local/mysql
COMPILATION_COMMENT コンパイル環境に関するコメント
COMPILATION_COMMENT_SERVER mysqld で使用するコンパイル環境に関するコメント 8.0.14
COMPRESS_DEBUG_SECTIONS バイナリ実行可能ファイルのデバッグセクションの圧縮 OFF 8.0.22
CPACK_MONOLITHIC_INSTALL パッケージビルドが単独のファイルを生成するかどうか OFF
DEFAULT_CHARSET デフォルトのサーバー文字セット utf8mb4
DEFAULT_COLLATION デフォルトのサーバー照合順序 utf8mb4_0900_ai_ci
DISABLE_PSI_COND Exclude Performance Schema 状態インストゥルメンテーション OFF
DISABLE_PSI_DATA_LOCK パフォーマンススキーマデータロックインストゥルメンテーションを除外 OFF
DISABLE_PSI_ERROR パフォーマンススキーマサーバーエラーの計測を除外 OFF
DISABLE_PSI_FILE Exclude Performance Schema ファイルインストゥルメンテーション OFF
DISABLE_PSI_IDLE Exclude Performance Schema アイドルインストゥルメンテーション OFF
DISABLE_PSI_MEMORY Exclude Performance Schema メモリーインストゥルメンテーション OFF
DISABLE_PSI_METADATA Exclude Performance Schema メタデータインストゥルメンテーション OFF
DISABLE_PSI_MUTEX Exclude Performance Schema 相互排他ロックインストゥルメンテーション OFF
DISABLE_PSI_PS パフォーマンススキーマのプリペアドステートメントの除外 OFF
DISABLE_PSI_RWLOCK Exclude Performance Schema rwlock インストゥルメンテーション OFF
DISABLE_PSI_SOCKET Exclude Performance Schema ソケットインストゥルメンテーション OFF
DISABLE_PSI_SP Exclude Performance Schema ストアドプログラムインストゥルメンテーション OFF
DISABLE_PSI_STAGE Exclude Performance Schema ステージングインストゥルメンテーション OFF
DISABLE_PSI_STATEMENT Exclude Performance Schema ステートメントインストゥルメンテーション OFF
DISABLE_PSI_STATEMENT_DIGEST Exclude Performance Schema statements_digest インストゥルメンテーション OFF
DISABLE_PSI_TABLE Exclude Performance Schema テーブルインストゥルメンテーション OFF
DISABLE_PSI_THREAD パフォーマンススキーマスレッドインストゥルメンテーションを除外 OFF
DISABLE_PSI_TRANSACTION パフォーマンススキーマのトランザクションインストゥルメンテーションの除外 OFF
DISABLE_SHARED 共有ライブラリを構築せず、位置依存コードをコンパイル OFF 8.0.18
DOWNLOAD_BOOST Boost ライブラリをダウンロードするかどうか OFF
DOWNLOAD_BOOST_TIMEOUT Boost ライブラリをダウンロードするためのタイムアウト (秒) 600
ENABLED_LOCAL_INFILE LOAD DATA の LOCAL を有効にするかどうか OFF
ENABLED_PROFILING クエリープロファイリングコードを有効にするかどうか ON
ENABLE_DOWNLOADS オプションファイルをダウンロードするかどうか OFF
ENABLE_EXPERIMENTAL_SYSVARS 実験的な InnoDB システム変数を有効にするかどうか OFF
ENABLE_GCOV gcov サポートをインクルードするかどうか
ENABLE_GPROF gprof の有効化 (Linux ビルドのみに最適化) OFF
FORCE_INSOURCE_BUILD ソース内ビルドを強制するかどうか OFF 8.0.14
FORCE_UNSUPPORTED_COMPILER サポートされていないコンパイラを許可するかどうか OFF
FPROFILE_GENERATE プロファイルガイド付き最適化データを生成するかどうか OFF 8.0.19
FPROFILE_USE プロファイルガイド付き最適化データを使用するかどうか OFF 8.0.19
IGNORE_AIO_CHECK -DBUILD_CONFIG=mysql_release とともに、libaio チェックを無視する OFF
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_MYSQLKEYRINGDIR keyring_file プラグインデータファイルのディレクトリ プラットフォーム固有
INSTALL_MYSQLSHAREDIR 共有データディレクトリ PREFIX/share
INSTALL_MYSQLTESTDIR mysql-test ディレクトリ PREFIX/mysql-test
INSTALL_PKGCONFIGDIR mysqlclient.pc pkg-config ファイルのディレクトリ INSTALL_LIBDIR/pkgconfig
INSTALL_PLUGINDIR Plugin ディレクトリ PREFIX/lib/plugin
INSTALL_PRIV_LIBDIR インストールプライベートライブラリディレクトリ 8.0.18
INSTALL_SBINDIR サーバー実行可能ファイルディレクトリ PREFIX/bin
INSTALL_SECURE_FILE_PRIVDIR secure_file_priv のデフォルト値 プラットフォーム固有
INSTALL_SHAREDIR aclocal/mysql.m4 インストールディレクトリ PREFIX/share
INSTALL_STATIC_LIBRARIES 静的ライブラリをインストールするかどうか ON
INSTALL_SUPPORTFILESDIR その他のサポートファイルディレクトリ PREFIX/support-files
LINK_RANDOMIZE mysqld バイナリ内のシンボルの順序をランダム化するかどうか OFF
LINK_RANDOMIZE_SEED LINK_RANDOMIZE オプションのシード値 mysql
MAX_INDEXES テーブルあたりの最大インデックス数 64
MUTEX_TYPE InnoDB 相互排他ロックタイプ event
MYSQLX_TCP_PORT X プラグインで使用される TCP/IP ポート番号 33060
MYSQLX_UNIX_ADDR X プラグインで使用される Unix ソケットファイル /tmp/mysqlx.sock
MYSQL_DATADIR データディレクトリ
MYSQL_MAINTAINER_MODE MySQL 管理者固有の開発環境を有効にするかどうか OFF
MYSQL_PROJECT_NAME Windows/macOS プロジェクト名 MySQL
MYSQL_TCP_PORT TCP/IP ポート番号 3306
MYSQL_UNIX_ADDR Unix ソケットファイル /tmp/mysql.sock
NDB_UTILS_LINK_DYNAMIC NDB ツールを ndbclient に動的にリンクさせます 8.0.22-ndb-8.0.22
ODBC_INCLUDES ODBC インクルードディレクトリ
ODBC_LIB_DIR ODBC ライブラリディレクトリ
OPTIMIZER_TRACE オプティマイザのトレースをサポートするかどうか
REPRODUCIBLE_BUILD ビルドの場所と時間に関係なくビルド結果を作成するには、特に注意してください
SYSCONFDIR オプションファイルディレクトリ
SYSTEMD_PID_DIR systemd 下の PID ファイルのディレクトリ /var/run/mysqld
SYSTEMD_SERVICE_NAME systemd の下の MySQL サービスの名前 mysqld
TMPDIR tmpdir のデフォルト値
USE_LD_GOLD GNU ゴールドリンカーを使用するかどうか ON
USE_LD_LLD llvm lld リンカーを使用するかどうか ON 8.0.16
WIN_DEBUG_NO_INLINE 関数インライン化を無効にするかどうか OFF
WITHOUT_xxx_STORAGE_ENGINE ストレージエンジン xxx をビルドから除外
WITH_ANT GCS Java ラッパーを構築するための Ant へのパス
WITH_ASAN AddressSanitizer 有効 OFF
WITH_ASAN_SCOPE AddressSanitizer -fsanitize-address-use-after-scope Clang フラグの有効化 OFF
WITH_AUTHENTICATION_LDAP LDAP 認証プラグインを構築できない場合にエラーを報告するかどうか OFF
WITH_AUTHENTICATION_PAM PAM 認証プラグインのビルド OFF
WITH_AWS_SDK Amazon Web Services ソフトウェア開発キットの場所
WITH_BOOST Boost ライブラリソースの場所
WITH_CLIENT_PROTOCOL_TRACING クライアント側プロトコルトレースフレームワークのビルド ON
WITH_CURL curl ライブラリの場所
WITH_DEBUG デバッグサポートをインクルードするかどうか OFF
WITH_DEFAULT_COMPILER_OPTIONS デフォルトのコンパイラオプションを使用するかどうか ON
WITH_DEFAULT_FEATURE_SET デフォルトの機能セットを使用するかどうか ON 8.0.22
WITH_EDITLINE どの libedit/editline ライブラリを使用するか bundled
WITH_GMOCK googlemock 分布へのパス
WITH_ICU ICU サポートのタイプ bundled
WITH_INNODB_EXTRA_DEBUG InnoDB の追加のデバッグサポートをインクルードするかどうか。 OFF
WITH_INNODB_MEMCACHED memcached 共有ライブラリを生成するかどうか。 OFF
WITH_JEMALLOC -ljemalloc とリンクするかどうか OFF 8.0.16
WITH_KEYRING_TEST キーリングテストプログラムの作成 OFF
WITH_LIBEVENT どの libevent ライブラリを使用するか bundled
WITH_LIBWRAP libwrap (TCP ラッパー) サポートをインクルードするかどうか OFF
WITH_LOCK_ORDER LOCK_ORDER ツールを有効にするかどうか OFF 8.0.17
WITH_LSAN AddressSanitizer なしで LeakSanitizer を実行するかどうか OFF 8.0.16
WITH_LTO リンク時オプティマイザの有効化 OFF 8.0.13
WITH_LZ4 LZ4 ライブラリサポートのタイプ bundled
WITH_LZMA LZMA ライブラリサポートのタイプ bundled 8.0.16
WITH_MECAB MeCab のコンパイル
WITH_MSAN MemorySanitizer の有効化 OFF
WITH_MSCRT_DEBUG Visual Studio CRT メモリーリークのトレースを有効化 OFF
WITH_MYSQLX X プロトコルを無効にするかどうか ON
WITH_NUMA NUMA メモリー割当てポリシーの設定
WITH_PROTOBUF 使用するプロトコルバッファパッケージ bundled
WITH_RAPID 迅速な開発サイクルプラグインを構築するかどうか ON
WITH_RAPIDJSON RapidJSON サポートのタイプ bundled 8.0.13
WITH_RE2 RE2 ライブラリサポートのタイプ bundled 8.0.18
WITH_ROUTER MySQL Router を構築するかどうか ON 8.0.16
WITH_SSL SSL サポートのタイプ system
WITH_SYSTEMD systemd サポートファイルのインストールを有効にします OFF
WITH_SYSTEMD_DEBUG 追加の systemd デバッグ情報の有効化 OFF 8.0.22
WITH_SYSTEM_LIBS 明示的に設定されていないライブラリオプションのシステム値の設定 OFF
WITH_TCMALLOC -ltcmalloc とリンクするかどうか OFF 8.0.22
WITH_TEST_TRACE_PLUGIN テスト側プロトコルトレースプラグインのビルド OFF
WITH_TSAN ThreadSanitizer の有効化 OFF
WITH_UBSAN 未定義動作のサニタイザの有効化 OFF
WITH_UNIT_TESTS ユニットテストを使用した MySQL のコンパイル ON
WITH_UNIXODBC unixODBC サポートの有効化 OFF
WITH_VALGRIND Valgrind ヘッダーファイルをコンパイルするかどうか OFF
WITH_ZLIB zlib サポートのタイプ bundled
WITH_ZSTD zstd サポートのタイプ bundled 8.0.18
WITH_xxx_STORAGE_ENGINE ストレージエンジン xxx をサーバーに静的にコンパイル

一般オプション

  • -DBUILD_CONFIG=mysql_release

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

  • -DBUNDLE_RUNTIME_LIBRARIES=bool

    ランタイムライブラリを Windows 用のサーバー MSI および Zip パッケージにバンドルするかどうか。

  • -DCMAKE_BUILD_TYPE=type

    生成するビルドのタイプ

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

    • Release: 最適化を有効にしますが、ビルドサイズを減らすためにデバッグ情報を省略します。 このビルドタイプは、MySQL 8.0.13 で追加されました。

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

  • -DCPACK_MONOLITHIC_INSTALL=bool

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

  • -DFORCE_INSOURCE_BUILD=bool

    ソース内ビルドを強制するかどうかを定義します。 アウトオブソースビルドでは同じソースからの複数のビルドが許可されるため、ビルドディレクトリを削除することでクリーンアップを迅速に実行できます。 ソース内ビルドを強制するには、-DFORCE_INSOURCE_BUILD=ON を使用して CMake を起動します。

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

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 パッケージレイアウト (実験的)。

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

    cmake . -DINSTALL_LAYOUT=SVR4 -DMYSQL_DATADIR=/var/mysql/data

    INSTALL_LAYOUT の値によって、secure_file_privkeyring_encrypted_file_data および keyring_file_data システム変数のデフォルト値が決まります。 セクション5.1.8「サーバーシステム変数」 および セクション6.4.4.13「キーリングシステム変数」 のこれらの変数の説明を参照してください。

  • -DINSTALL_LIBDIR=dir_name

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

  • -DINSTALL_MANDIR=dir_name

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

  • -DINSTALL_MYSQLKEYRINGDIR=dir_path

    keyring_file プラグインデータファイルの場所として使用するデフォルトのディレクトリ。 デフォルト値はプラットフォーム固有で、INSTALL_LAYOUT CMake オプションの値によって異なります。セクション5.1.8「サーバーシステム変数」keyring_file_data システム変数の説明を参照してください。

  • -DINSTALL_MYSQLSHAREDIR=dir_name

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

  • -DINSTALL_MYSQLTESTDIR=dir_name

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

  • -DINSTALL_PKGCONFIGDIR=dir_name

    pkg-config で使用する mysqlclient.pc ファイルをインストールするディレクトリ。 INSTALL_LIBDIR/mysql で終わっていないかぎり、デフォルト値は INSTALL_LIBDIR/pkgconfig です。この場合は、最初に削除されます。

  • -DINSTALL_PLUGINDIR=dir_name

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

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

  • -DINSTALL_PRIV_LIBDIR=dir_name

    動的ライブラリディレクトリの場所。

    デフォルトの場所: RPM = /usr/lib64/mysql/private/、DEB = /usr/lib/mysql/private/および TAR = lib/private/

    このオプションは MySQL 8.0.18 で追加されました。

    Protobuf 用: これはプライベートな場所であるため、ローダー (Linux 上の ld-linux.so など) はヘルプなしで libprotobuf.so ファイルを見つけることができない場合があります。 ローダーをガイドするために、値 $ORIGIN/../$INSTALL_PRIV_LIBDIR を持つ RPATH が mysqld および mysqlxtest に追加されます。 これはほとんどの場合に機能しますが、Resource Group 機能を使用する場合、mysqldsetsuid であり、ローダーは $ORIGIN を含む RPATH を無視します。 これを解決するには、ターゲットの宛先が既知であるため、ディレクトリへの明示的なフルパスが mysqld の DEB および RPM バリアントに設定されます。 tarball インストールでは、patchelf などのツールを使用した mysqld のパッチ適用が必要です。

  • -DINSTALL_SBINDIR=dir_name

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

  • -DINSTALL_SECURE_FILE_PRIVDIR=dir_name

    secure_file_priv システム変数のデフォルト値。 デフォルト値はプラットフォーム固有で、INSTALL_LAYOUT CMake オプションの値によって異なります。セクション5.1.8「サーバーシステム変数」secure_file_priv システム変数の説明を参照してください。

  • -DINSTALL_SHAREDIR=dir_name

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

  • -DINSTALL_STATIC_LIBRARIES=bool

    静的ライブラリをインストールするかどうか。 デフォルトは ON です。 OFF に設定されている場合、これらのライブラリはインストールされません: libmysqlclient.alibmysqlservices.a

  • -DINSTALL_SUPPORTFILESDIR=dir_name

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

  • -DLINK_RANDOMIZE=bool

    mysqld バイナリ内のシンボルの順序をランダム化するかどうか。 デフォルトは OFF です。 このオプションは、デバッグ目的でのみ有効にしてください。

  • -DLINK_RANDOMIZE_SEED=val

    LINK_RANDOMIZE オプションのシード値。 値は文字列です。 デフォルトは、任意の選択肢である mysql です。

  • -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 はファイルへのフルパス名です。

  • -DSYSTEMD_PID_DIR=dir_name

    systemd によって MySQL が管理されている場合に PID ファイルを作成するディレクトリの名前。 デフォルトは/var/run/mysqld です。これは、INSTALL_LAYOUT の値に従って暗黙的に変更される場合があります。

    WITH_SYSTEMD が有効になっていないかぎり、このオプションは無視されます。

  • -DSYSTEMD_SERVICE_NAME=name

    MySQL が systemd によって管理されている場合に使用する MySQL サービスの名前。 デフォルトは mysqld です。これは、INSTALL_LAYOUT の値に従って暗黙的に変更される場合があります。

    WITH_SYSTEMD が有効になっていないかぎり、このオプションは無視されます。

  • -DTMPDIR=dir_name

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

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

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

InnoDB, MyISAM, MERGE, MEMORY および CSV エンジンは必須 (常にサーバーにコンパイルされる) であり、明示的にインストールする必要はありません。

ストレージエンジンをサーバー内に静的にコンパイルするには、-DWITH_engine_STORAGE_ENGINE=1 を使用します。 使用可能な engine 値には、ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATEDNDB または NDBCLUSTER (NDB サポート) があります。 例:

-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
注記

パフォーマンススキーマサポートなしでコンパイルすることはできません。 特定のタイプのインストゥルメンテーションなしでコンパイルする場合は、次の CMake オプションを使用して実行できます:

DISABLE_PSI_COND
DISABLE_PSI_DATA_LOCK
DISABLE_PSI_ERROR
DISABLE_PSI_FILE
DISABLE_PSI_IDLE
DISABLE_PSI_MEMORY
DISABLE_PSI_METADATA
DISABLE_PSI_MUTEX
DISABLE_PSI_PS
DISABLE_PSI_RWLOCK
DISABLE_PSI_SOCKET
DISABLE_PSI_SP
DISABLE_PSI_STAGE
DISABLE_PSI_STATEMENT
DISABLE_PSI_STATEMENT_DIGEST
DISABLE_PSI_TABLE
DISABLE_PSI_THREAD
DISABLE_PSI_TRANSACTION

たとえば、mutex インストゥルメンテーションなしでコンパイルするには、-DDISABLE_PSI_MUTEX=1 オプションを使用して MySQL を構成します。

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

-DWITH_ARCHIVE_STORAGE_ENGINE=0
-DWITH_EXAMPLE_STORAGE_ENGINE=0
-DWITH_FEDERATED_STORAGE_ENGINE=0

-DWITHOUT_engine_STORAGE_ENGINE=1 を使用して構築からストレージエンジンを除外することもできます (ただし、-DWITH_engine_STORAGE_ENGINE=0 をお勧めします)。 例:

-DWITHOUT_ARCHIVE_STORAGE_ENGINE=1
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1

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

機能オプション

  • -DADD_GDB_INDEX=bool

    このオプションは、バイナリでの .gdb_index セクションの生成を有効にするかどうかを決定します。これにより、デバッガへのロードが高速になります。 このオプションはデフォルトで無効になっています。lld リンカーが使用され、lld または GNU gold 以外のリンカーが使用されている場合は無効になります。

    このオプションは MySQL 8.0.18 で追加されました。

  • -DCOMPILATION_COMMENT=string

    コンパイル環境に関する説明コメント。 MySQL 8.0.14 では、mysqldCOMPILATION_COMMENT_SERVER を使用します。 他のプログラムは引き続き COMPILATION_COMMENT を使用します。

  • -DCOMPRESS_DEBUG_SECTIONS=bool

    バイナリ実行可能ファイルのデバッグセクションを圧縮するかどうか (Linux のみ)。 実行可能デバッグセクションを圧縮すると、構築プロセス中に余分な CPU 時間がかかるため、領域を節約できます。

    デフォルトは OFF です。 このオプションが明示的に設定されていないが、COMPRESS_DEBUG_SECTIONS 環境変数が設定されている場合、このオプションはその変数から値を取得します。

    このオプションは MySQL 8.0.22 で追加されました。

  • -DCOMPILATION_COMMENT_SERVER=string

    mysqld で使用するコンパイル環境に関する説明コメント (version_comment システム変数の設定など)。 このオプションは MySQL 8.0.14 で追加されました。 8.0.14 より前では、サーバーは COMPILATION_COMMENT を使用します。

  • -DDEFAULT_CHARSET=charset_name

    サーバーの文字セット。 デフォルトでは、MySQL は utf8mb4 文字セットを使用します。

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

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

  • -DDEFAULT_COLLATION=collation_name

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

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

  • -DDISABLE_PSI_COND=bool

    パフォーマンススキーマ条件インストゥルメンテーションを除外するかどうか。 デフォルトは OFF (include) です。

  • -DDISABLE_PSI_FILE=bool

    パフォーマンススキーマファイルインストゥルメンテーションを除外するかどうか。 デフォルトは OFF (include) です。

  • -DDISABLE_PSI_IDLE=bool

    パフォーマンススキーマアイドルインストゥルメンテーションを除外するかどうか。 デフォルトは OFF (include) です。

  • -DDISABLE_PSI_MEMORY=bool

    パフォーマンススキーマメモリーインストゥルメンテーションを除外するかどうか。 デフォルトは OFF (include) です。

  • -DDISABLE_PSI_METADATA=bool

    パフォーマンススキーマメタデータの計測を除外するかどうか。 デフォルトは OFF (include) です。

  • -DDISABLE_PSI_MUTEX=bool

    パフォーマンススキーマミューテックスのインストゥルメンテーションを除外するかどうか。 デフォルトは OFF (include) です。

  • -DDISABLE_PSI_RWLOCK=bool

    パフォーマンススキーマ rwlock インストゥルメンテーションを除外するかどうか。 デフォルトは OFF (include) です。

  • -DDISABLE_PSI_SOCKET=bool

    パフォーマンススキーマソケットインストゥルメンテーションを除外するかどうか。 デフォルトは OFF (include) です。

  • -DDISABLE_PSI_SP=bool

    パフォーマンススキーマストアドプログラムインストゥルメンテーションを除外するかどうか。 デフォルトは OFF (include) です。

  • -DDISABLE_PSI_STAGE=bool

    パフォーマンススキーマステージインストゥルメンテーションを除外するかどうか。 デフォルトは OFF (include) です。

  • -DDISABLE_PSI_STATEMENT=bool

    パフォーマンススキーマステートメントインストゥルメンテーションを除外するかどうか。 デフォルトは OFF (include) です。

  • -DDISABLE_PSI_STATEMENT_DIGEST=bool

    パフォーマンススキーマ statement_digest インストゥルメンテーションを除外するかどうか。 デフォルトは OFF (include) です。

  • -DDISABLE_PSI_TABLE=bool

    「パフォーマンススキーマ」テーブルインストゥルメンテーションを除外するかどうか。 デフォルトは OFF (include) です。

  • -DDISABLE_SHARED=bool

    ビルド共有ライブラリを無効にし、位置依存コードをコンパイルするかどうか。 デフォルトは OFF (位置独立コードのコンパイル) です。

    このオプションは未使用であり、MySQL 8.0.18 で削除されました。

  • -DDISABLE_PSI_PS=bool

    パフォーマンススキーマプリペアドステートメントのインスタンスインストゥルメンテーションを除外します。 デフォルトは OFF (include) です。

  • -DDISABLE_PSI_THREAD=bool

    パフォーマンススキーマスレッドインストゥルメンテーションを除外します。 デフォルトは OFF (include) です。

    ほかのインストゥルメンテーションはスレッドに依存しているため、インストゥルメンテーションなしで構築する場合にのみスレッドを無効にします。

  • -DDISABLE_PSI_TRANSACTION=bool

    パフォーマンススキーマのトランザクションインストゥルメンテーションを除外します。 デフォルトは OFF (include) です。

  • -DDISABLE_PSI_DATA_LOCK=bool

    パフォーマンススキーマデータロックインストゥルメンテーションを除外します。 デフォルトは OFF (include) です。

  • -DDISABLE_PSI_ERROR=bool

    パフォーマンススキーマサーバーエラーの計測を除外します。 デフォルトは OFF (include) です。

  • -DDOWNLOAD_BOOST=bool

    Boost ライブラリをダウンロードするかどうか デフォルトは OFF です。

    Boost の使用方法の詳細は、WITH_BOOST オプションを参照してください。

  • -DDOWNLOAD_BOOST_TIMEOUT=seconds

    Boost ライブラリをダウンロードするためのタイムアウト (秒)。 デフォルトは 600 秒です。

    Boost の使用方法の詳細は、WITH_BOOST オプションを参照してください。

  • -DENABLE_DOWNLOADS=bool

    オプションファイルをダウンロードするかどうか。 たとえば、このオプションを有効にすると、CMake は、ユニットテストを実行するためにテストスイートで使用される Google テストディストリビューション、または GCS Java ラッパーの構築に必要な Ant と JUnit をダウンロードします。

  • -DENABLE_EXPERIMENTAL_SYSVARS=bool

    実験的な InnoDB システム変数を有効にするかどうか。 試験的なシステム変数は、MySQL 開発に関与するものを対象としており、開発環境またはテスト環境でのみ使用する必要があり、将来の MySQL リリースでは予告なしに削除される可能性があります。 実験システム変数については、MySQL ソースツリーの/storage/innobase/handler/ha_innodb.cc を参照してください。 試験的なシステム変数は、PLUGIN_VAR_EXPERIMENTAL を検索することで識別できます。

  • -DENABLE_GCOV=bool

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

  • -DENABLE_GPROF=bool

    gprof を有効にするかどうか (最適化された Linux ビルドのみ)。

  • -DENABLED_LOCAL_INFILE=bool

    このオプションは、MySQL クライアントライブラリのコンパイル済みのデフォルトの LOCAL 機能を制御します。 したがって、明示的な配置を行わないクライアントでは、MySQL ビルド時に指定された ENABLED_LOCAL_INFILE 設定に従って、LOCAL 機能が無効または有効になります。

    デフォルトでは、MySQL バイナリディストリビューションのクライアントライブラリは、ENABLED_LOCAL_INFILE を無効にしてコンパイルされます。 ソースから MySQL をコンパイルする場合は、明示的な配置を行わないクライアントで LOCAL 機能をそれぞれ無効にするか有効にするかに基づいて、ENABLED_LOCAL_INFILE を無効または有効にして構成します。

    ENABLED_LOCAL_INFILE は、クライアント側の LOCAL 機能のデフォルトを制御します。 サーバーの場合、local_infile システム変数はサーバー側の LOCAL 機能を制御します。 サーバーが LOAD DATA LOCAL ステートメントを明示的に拒否または許可するようにするには (構築時または実行時にクライアントプログラムおよびライブラリがどのように構成されているかに関係なく)、それぞれ local_infile を無効または有効にして mysqld を起動します。local_infile は実行時に設定することもできます。 セクション6.1.6「LOAD DATA LOCAL のセキュリティー上の考慮事項」を参照してください。

  • -DENABLED_PROFILING=bool

    クエリープロファイリングコードを有効にするかどうか (SHOW PROFILE および SHOW PROFILES ステートメントで)。

  • -DFORCE_UNSUPPORTED_COMPILER=bool

    デフォルトでは、CMake はサポートされているコンパイラの最小バージョンをチェック: Visual Studio 2015 (Windows)、GCC 4.8 または Clang 3.4 (Linux)、Developer Studio 12.5 (Solaris サーバー)、Developer Studio 12.4 または GCC 4.8 (Solaris クライアントライブラリ)、Clang 3.6 (macOS)、Clang 3.4 (FreeBSD)。 このチェックを無効にするには、-DFORCE_UNSUPPORTED_COMPILER=ON を使用します。

  • -DFPROFILE_GENERATE=bool

    プロファイルガイド付き最適化 (PGO) データを生成するかどうか。 このオプションは、GCC を使用した PGO の実験に使用できます。 FPROFILE_GENERATE および FPROFILE_USE の使用の詳細は、MySQL ソース配布の cmake/fprofile.cmake ファイルを参照してください。 これらのオプションは GCC 8 および 9 でテストされています。

    このオプションは MySQL 8.0.19 で追加されました。

  • -DFPROFILE_USE=bool

    プロファイルガイド付き最適化 (PGO) データを使用するかどうか。 このオプションは、GCC を使用した PGO の実験に使用できます。 FPROFILE_GENERATE および FPROFILE_USE の使用の詳細は、MySQL ソース配布の cmake/fprofile.cmake ファイルを参照してください。 これらのオプションは GCC 8 および 9 でテストされています。

    FPROFILE_USE を有効にすると、WITH_LTO も有効になります。

    このオプションは MySQL 8.0.19 で追加されました。

  • -DIGNORE_AIO_CHECK=bool

    Linux で -DBUILD_CONFIG=mysql_release オプションが与えられた場合、デフォルトで libaio ライブラリがリンクされていなければなりません。 libaio がない場合、またはインストールしない場合、-DIGNORE_AIO_CHECK=1 を指定するとそのチェックを抑制できます。

  • -DMAX_INDEXES=num

    テーブル当たりのインデックスの最大数。 デフォルトは 64 です。 最大値は 255 です。 64 より小さい値は無視され、デフォルトの 64 が使用されます。

  • -DMYSQL_MAINTAINER_MODE=bool

    MySQL 管理者固有の開発環境を有効にするかどうか。 有効の場合、このオプションによりコンパイラの警告はエラーになります。

  • -DMUTEX_TYPE=type

    InnoDB で使用される mutex タイプ。 次のようなオプションがあります。

    • event: イベント相互排他ロックを使用します。 これはデフォルト値であり、元の InnoDB mutex 実装です。

    • sys: UNIX システムで POSIX mutex を使用します。 使用可能な場合は、Windows で CRITICAL_SECTION onjects を使用します。

    • futex: 待機スレッドをスケジュールするには、条件変数のかわりに Linux futex を使用します。

  • -DMYSQLX_TCP_PORT=port_num

    X プラグイン が TCP/IP 接続をリスニングするポート番号。 デフォルトは 33060 です。

    この値は、サーバーの起動時に mysqlx_port システム変数を使用して設定できます。

  • -DMYSQLX_UNIX_ADDR=file_name

    サーバーが X プラグイン ソケット接続をリスニングする Unix ソケットファイルのパス。 これは絶対パス名でなければなりません。 デフォルトは/tmp/mysqlx.sock です。

    この値は、サーバーの起動時に mysqlx_port システム変数を使用して設定できます。

  • -DMYSQL_PROJECT_NAME=name

    Windows または macOS の場合、プロジェクトファイル名に組み込むプロジェクト名。

  • -DMYSQL_TCP_PORT=port_num

    サーバーが TCP/IP 接続を待機するポート番号。 デフォルトは 3306 です。

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

  • -DMYSQL_UNIX_ADDR=file_name

    サーバーがソケット接続を待機する Unix ソケットファイルのパス。 これは絶対パス名でなければなりません。 デフォルトは /tmp/mysql.sock です。

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

  • -DOPTIMIZER_TRACE=bool

    オプティマイザのトレースをサポートするかどうか。 「MySQL Internals: Tracing the Optimizer」を参照してください。

  • -DREPRODUCIBLE_BUILD=bool

    Linux システム上のビルドの場合、このオプションはビルドの場所と時間に関係なくビルド結果を作成するために特別な注意を払うかどうかを制御します。

    このオプションは MySQL 8.0.11 で追加されました。 MySQL 8.0.12 では、RelWithDebInfo ビルド用の ON にデフォルト設定されます。

  • -DUSE_LD_GOLD=bool

    GNU gold リンカーが使用可能で明示的に無効になっていない場合、CMake は構築プロセスを GNU gold リンカーにリンクします。 このリンカーの使用を無効にするには、-DUSE_LD_GOLD=OFF オプションを指定します。

  • -DUSE_LD_LLD=bool

    構築プロセスが使用可能であり、明示的に無効になっていない場合、CMake はその構築プロセスを Clang 用の llvm lld リンカーにリンクします。 このリンカーの使用を無効にするには、-DUSE_LD_LLD=OFF オプションを指定します。

    このオプションは MySQL 8.0.16 で追加されました。

  • -DWIN_DEBUG_NO_INLINE=bool

    Windows で関数のインライン化を無効にするかどうか。 デフォルトは off (インライン化が有効) です。

  • -DWITH_ANT=path_name

    GCS Java ラッパーの構築時に必要な Ant へのパスを設定します。 既存の WITH_BOOST CMake オプションと同様の方法で動作します。 Ant tarball またはすでに解凍されたアーカイブが保存されているディレクトリのパスに WITH_ANT を設定します。 WITH_ANT が設定されていない場合、または特別な値 system を使用して設定されている場合、ビルドでは $PATH にバイナリ ant が存在すると想定されます。

  • -DWITH_ASAN=bool

    AddressSanitizer をサポートするコンパイラに対して有効にするかどうか。 デフォルトはオフです。

  • -DWITH_ASAN_SCOPE=bool

    use-after-scope 検出に対して AddressSanitizer -fsanitize-address-use-after-scope Clang フラグを有効にするかどうか。 デフォルトはオフです。 このオプションを使用するには、-DWITH_ASAN も有効にする必要があります。

  • -DWITH_AUTHENTICATION_LDAP=bool

    LDAP 認証プラグインを構築できない場合にエラーを報告するかどうか:

    • このオプションを無効 (デフォルト) にすると、必要なヘッダーファイルおよびライブラリが見つかった場合に LDAP プラグインが構築されます。 そうでない場合は、CMake によってノートが表示されます。

    • このオプションが有効な場合、必要なヘッダーファイルおよびライブラリが見つからないと、CMake でエラーが生成され、サーバーのビルドが妨げられます。

  • -DWITH_AUTHENTICATION_PAM=bool

    このプラグインを含むソースツリーの PAM 認証プラグインを構築するかどうか。 (セクション6.4.1.5「PAM プラガブル認証」を参照してください。) このオプションが指定され、プラグインをコンパイルできない場合、ビルドは失敗します。

  • -DWITH_AWS_SDK=path_name

    Amazon Web Services ソフトウェア開発キットの場所。

  • -DWITH_BOOST=path_name

    MySQL をビルドするには Boost ライブラリが必要です。 これらの CMake オプションを使用すると、ライブラリのソースの場所、およびそれを自動的にダウンロードするかどうかを制御できます:

    • -DWITH_BOOST=path_name では、ブーストライブラリディレクトリの場所を指定します。 BOOST_ROOT または WITH_BOOST 環境変数を設定してブーストの場所を指定することもできます。

      -DWITH_BOOST=system も許可され、コンパイルホストの標準の場所に正しいバージョンの Boost がインストールされていることを示します。 この場合、MySQL ソース配布に含まれる任意のバージョンではなく、インストールされている Boost のバージョンが使用されます。

    • -DDOWNLOAD_BOOST=bool は、Boost ソースが指定された場所に存在しない場合にダウンロードするかどうかを指定します。 デフォルトは OFF です。

    • Boost ライブラリをダウンロードするためのタイムアウトを秒単位で -DDOWNLOAD_BOOST_TIMEOUT=seconds に設定します。 デフォルトは 600 秒です。

    たとえば、通常、MySQL ソースツリーの bld サブディレクトリにオブジェクト出力を配置して MySQL をビルドする場合は、次のように Boost を使用してビルドできます:

    mkdir bld
    cd bld
    cmake .. -DDOWNLOAD_BOOST=ON -DWITH_BOOST=$HOME/my_boost

    これにより、Boost がホームディレクトリの下の my_boost ディレクトリにダウンロードされます。 必要な Boost バージョンがすでに存在する場合、ダウンロードは行われません。 必要な Boost バージョンが変更されると、新しいバージョンがダウンロードされます。

    Boost がすでにローカルにインストールされていて、コンパイラが Boost ヘッダーファイルを単独で検出した場合は、前述の CMake オプションを指定する必要はありません。 ただし、MySQL に必要な Boost のバージョンが変更され、ローカルにインストールされたバージョンがアップグレードされていない場合は、ビルドの問題が発生している可能性があります。 CMake オプションを使用すると、ビルドが成功します。

    指定した場所へのブーストダウンロードを許可する前述の設定では、必要なブーストバージョンが変更された場合、bld フォルダを削除して再作成し、cmake ステップを再度実行する必要があります。 そうしないと、新しい Boost バージョンがダウンロードされず、コンパイルが失敗する可能性があります。

  • -DWITH_CLIENT_PROTOCOL_TRACING=bool

    クライアントライブラリにクライアント側プロトコルトレースフレームワークをビルドするかどうか。 デフォルトでは、このオプションは有効です。

    プロトコルトレースクライアントプラグインの記述の詳細は、Writing Protocol Trace Plugins を参照してください。

    WITH_TEST_TRACE_PLUGIN オプションも参照してください。

  • -DWITH_CURL=curl_type

    curl ライブラリの場所。curl_type は、system (システム curl ライブラリを使用) または curl ライブラリへのパス名です。

  • -DWITH_DEBUG=bool

    デバッグサポートを含めるかどうか。

    デバッグサポートを有効にして MySQL を構成することにより、サーバーを起動するときに --debug="d,parser_debug" オプションを使用できるようになります。 これにより、SQL ステートメントの処理に使用される Bison パーサーが、パーサートレースをサーバーの標準エラー出力にダンプします。 一般的に、この出力はエラーログに書き込まれます。

    InnoDB ストレージエンジンの同期デバッグチェックは UNIV_DEBUG で定義され、WITH_DEBUG オプションを使用してデバッグサポートをコンパイルするときに使用できます。 デバッグサポートがでコンパイルされている場合は、innodb_sync_debug 構成オプションを使用して、InnoDB 同期デバッグチェックを有効または無効にできます。

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

    InnoDB ストレージエンジンの同期デバッグチェックは、WITH_DEBUG オプションを使用してデバッグサポートがコンパイルされている場合に使用できます。

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

  • -DWITH_DEFAULT_FEATURE_SET=bool

    cmake/build_configurations/feature_set.cmake からのフラグを使用するかどうか。 このオプションは MySQL 8.0.22 で削除されました。

  • -DWITH_EDITLINE=value

    どの libedit/editline ライブラリを使用するか。 許可される値は、bundled (デフォルト) および system です。

  • -DWITH_GMOCK=path_name

    Google テストベースのユニットテストで使用する googlemock ディストリビューションへのパス。 オプション値は、配布 Zip ファイルへのパスです。 または、WITH_GMOCK 環境変数をパス名に設定します。 CMake が GitHub からディストリビューションをダウンロードできるように、-DENABLE_DOWNLOADS=1 を使用することもできます。

    Google テストベースのユニットテストを使用せずに (WITH_GMOCK を構成して) MySQL をビルドすると、CMake によってダウンロード方法を示すメッセージが表示されます。

  • -DWITH_ICU={icu_type|path_name}

    MySQL では、International Components for Unicode (ICU) を使用して正規表現操作をサポートしています。 WITH_ICU オプションは、含める ICU サポートのタイプまたは使用する ICU インストールのパス名を示します。

    • icu_type は、次のいずれかの値です:

      • bundled: 配布にバンドルされている ICU ライブラリを使用します。 これはデフォルトであり、Windows でサポートされている唯一のオプションです。

      • system: システム ICU ライブラリを使用します。

    • path_name は、使用する ICU インストールのパス名です。 これは、CMake がシステムにインストールされている古いバージョンまたは正しくない ICU バージョンを検出して使用するのを防ぐことができるため、systemicu_type 値を使用するよりも望ましい場合があります。 (同じことを可能にする別の方法は、WITH_ICUsystem に設定し、CMAKE_PREFIX_PATH オプションを path_name に設定することです。)

  • -DWITH_INNODB_EXTRA_DEBUG=bool

    追加の InnoDB デバッグサポートを含めるかどうか。

    WITH_INNODB_EXTRA_DEBUG を有効にすると、追加の InnoDB デバッグチェックが有効になります。 このオプションは、WITH_DEBUG が有効な場合にのみ有効にできます。

  • -DWITH_INNODB_MEMCACHED=bool

    memcached 共有ライブラリ (libmemcached.so および innodb_engine.so) を生成するかどうか。

  • -DWITH_JEMALLOC=bool

    -ljemalloc とリンクするかどうか。 有効にすると、組込み malloc(), calloc(), realloc() および free() ルーチンは無効になります。 デフォルトは OFF です。

    WITH_JEMALLOCWITH_TCMALLOC は相互に排他的です。

    このオプションは MySQL 8.0.16 で追加されました。

  • -DWITH_KEYRING_TEST=bool

    keyring_file プラグインに付属するテストプログラムをビルドするかどうか。 デフォルトは OFF です。 テストファイルのソースコードは、plugin/keyring/keyring-test ディレクトリにあります。

  • -DWITH_LIBEVENT=string

    どの libevent ライブラリを使用するか。 許可される値は、bundled (デフォルト) および system です。 MySQL 8.0.21 より前では、system を指定すると、システム libevent ライブラリが存在する場合はそれが使用され、それ以外の場合はエラーが発生します。 MySQL 8.0.21 以降では、system が指定されていて、システム libevent ライブラリが見つからない場合、エラーが発生し、バンドルされている libevent は使用されません。

    libevent ライブラリは、InnoDB memcached、X プラグイン、および MySQL Router に必要です。

  • -DWITH_LIBWRAP=bool

    libwrap (TCP ラッパー) サポートを含めるかどうか。

  • -DWITH_LOCK_ORDER=bool

    LOCK_ORDER ツールを有効にするかどうか。 デフォルトでは、このオプションは無効になっており、サーバービルドにツールは含まれていません。 ツールが有効な場合、LOCK_ORDER ツールは使用可能であり、セクション5.9.3「LOCK_ORDER ツール」 で説明されているように使用できます。

    注記

    WITH_LOCK_ORDER オプションを有効にすると、MySQL ビルドに flex プログラムが必要になります。

    このオプションは MySQL 8.0.17 で追加されました。

  • -DWITH_LSAN=bool

    AddressSanitizer を使用せずに LeakSanitizer を実行するかどうか。 デフォルトは OFF です。

    このオプションは MySQL 8.0.16 で追加されました。

  • -DWITH_LTO=bool

    コンパイラでサポートされている場合に、リンク時オプティマイザを有効にするかどうか。 FPROFILE_USE が有効でないかぎり、デフォルトは OFF です。

    このオプションは MySQL 8.0.13 で追加されました。

  • -DWITH_LZ4=lz4_type

    WITH_LZ4 は、zlib サポートのソースを示します:

    • bundled: ディストリビューションにバンドルされている lz4 ライブラリを使用します。 これはデフォルトです。

    • system: システム lz4 ライブラリを使用します。 WITH_LZ4 がこの値に設定されている場合、lz4_decompress ユーティリティはビルドされません。 この場合、かわりに system lz4 コマンドを使用できます。

  • -DWITH_LZMA=lzma_type

    含める LZMA ライブラリサポートのタイプ。lzma_type は、次のいずれかの値です:

    • bundled: ディストリビューションにバンドルされている LZMA ライブラリを使用します。 これはデフォルトです。

    • system: システム LZMA ライブラリを使用します。

    このオプションは MySQL 8.0.16 で削除されました。

  • -DWITH_MECAB={disabled|system|path_name}

    このオプションを使用して、MeCab パーサーをコンパイルします。 MeCab をデフォルトのインストールディレクトリにインストールした場合は、-DWITH_MECAB=system を設定します。 system オプションは、ネイティブパッケージ管理ユーティリティを使用してソースまたはバイナリから実行される MeCab インストールに適用されます。 MeCab をカスタムインストールディレクトリにインストールした場合は、MeCab インストールへのパスを指定します。 たとえば、-DWITH_MECAB=/opt/mecab です。 system オプションが機能しない場合は、すべての場合に MeCab インストールパスを指定する必要があります。

    関連情報については、セクション12.10.9「MeCab フルテキストパーサープラグイン」を参照してください。

  • -DWITH_MSAN=bool

    MemorySanitizer をサポートするコンパイラに対して有効にするかどうか。 デフォルトはオフです。

    このオプションを有効にするには、MySQL にリンクされているすべてのライブラリもオプションを有効にしてコンパイルされている必要があります。

  • -DWITH_MSCRT_DEBUG=bool

    Visual Studio CRT メモリーリークトレースを有効にするかどうか。 デフォルトは OFF です。

  • -DWITH_MYSQLX=bool

    X プラグイン のサポート付きでビルドするかどうか。 デフォルトの ON第20章「ドキュメントストアとしての MySQL の使用を参照してください。

  • -DWITH_NUMA=bool

    NUMA メモリー割当てポリシーを明示的に設定します。 CMake では、現在のプラットフォームに NUMA サポートがあるかどうかに基づいて、デフォルトの WITH_NUMA 値が設定されます。 NUMA がサポートされていないプラットフォームでは、CMake は次のように動作します:

    • NUMA オプションなし (通常の場合) では、CMake は正常に続行され、この警告のみが生成されます: NUMA ライブラリがないか、必要なバージョンがありません

    • -DWITH_NUMA=ON では、CMake はこのエラーで異常終了: NUMA ライブラリがないか、必要なバージョンがありません

  • -DWITH_PROTOBUF=protobuf_type

    使用するプロトコルバッファパッケージ。protobuf_type は、次のいずれかの値です:

    • bundled: 配布にバンドルされているパッケージを使用します。 これはデフォルトです。 オプションで、INSTALL_PRIV_LIBDIR を使用して動的 Protobuf ライブラリディレクトリを変更します。

    • system: システムにインストールされているパッケージを使用します。

    その他の値は無視され、bundled にフォールバックされます。

  • -DWITH_RAPID=bool

    迅速な開発サイクルプラグインを構築するかどうか。 有効にすると、これらのプラグインを含むビルドツリーに rapid ディレクトリが作成されます。 無効にすると、ビルドツリーに rapid ディレクトリは作成されません。 rapid ディレクトリがソースツリーから削除されないかぎり、デフォルトは ON です。この場合、デフォルトは OFF になります。

  • -DWITH_RAPIDJSON=rapidjson_type

    含める RapidJSON ライブラリサポートのタイプ。rapidjson_type は、次のいずれかの値です:

    • bundled: ディストリビューションにバンドルされている RapidJSON ライブラリを使用します。 これはデフォルトです。

    • system: システム RapidJSON ライブラリを使用します。 バージョン 1.1.0 以上が必要です。

    このオプションは MySQL 8.0.13 で追加されました。

  • -DWITH_RE2=re2_type

    含める RE2 ライブラリサポートのタイプ。re2_type は、次のいずれかの値です:

    • bundled: ディストリビューションにバンドルされている RE2 ライブラリを使用します。 これはデフォルトです。

    • system: システム RE2 ライブラリを使用します。

    MySQL 8.0.18 の時点で、MySQL は RE2 ライブラリを使用しなくなり、このオプションは削除されました。

  • -DWITH_ROUTER=bool

    MySQL Router をビルドするかどうか。 デフォルトは ON です。

    このオプションは MySQL 8.0.16 で追加されました。

  • -DWITH_SSL={ssl_type|path_name}

    暗号化された接続、乱数生成のエントロピ、およびその他の暗号化関連の操作をサポートするには、SSL ライブラリを使用して MySQL を構築する必要があります。 このオプションは、使用する SSL ライブラリを指定します。

    • ssl_type には、次の値のいずれかを指定できます。

      • system: システム OpenSSL ライブラリを使用します。 これはデフォルトです。

        macOS および Windows では、system を使用して、path_name を使用して CMake が起動されたときに手動でインストールされた OpenSSL ライブラリを指しているかのように構築するように MySQL を構成します。 これは、システム SSL ライブラリがないためです。 macOS では、system で検出できるように、brew install openssl/usr/local/opt/openssl にインストールされます。 Windows では、%ProgramFiles%/OpenSSL%ProgramFiles%/OpenSSL-Win32%ProgramFiles%/OpenSSL-Win64C:/OpenSSLC:/OpenSSL-Win32 および C:/OpenSSL-Win64 がチェックされます。

      • yes: これは system のシノニムです。

    • path_name は、使用する OpenSSL インストールのパス名です。 これは、CMake がシステムにインストールされている古いバージョンまたは正しくない OpenSSL バージョンを検出して使用するのを防ぐことができるため、systemssl_type 値を使用するよりも望ましい場合があります。 (同じことを可能にする別の方法は、WITH_SSLsystem に設定し、CMAKE_PREFIX_PATH オプションを path_name に設定することです。)

    SSL ライブラリの構成の詳細は、を参照してください セクション2.9.6「SSL ライブラリサポートの構成」.

  • -DWITH_SYSTEMD=bool

    systemd サポートファイルのインストールを有効にするかどうか。 デフォルトでは、このオプションは無効です。 有効にすると、systemd サポートファイルがインストールされ、mysqld_safe や System V 初期化スクリプトなどのスクリプトはインストールされません。 systemd を使用できないプラットフォームでは、WITH_SYSTEMD を有効にすると、CMake からエラーが発生します。

    systemd の使用の詳細は、セクション2.5.9「systemd を使用した MySQL Server の管理」 を参照してください。 このセクションでは、[mysqld_safe]オプショングループで以前に指定されたオプションの指定についても説明します。 systemd の使用時に mysqld_safe はインストールされないため、このようなオプションは別の方法で指定する必要があります。

  • -DWITH_SYSTEM_LIBS=bool

    このオプションは、明示的に設定されていない次の CMake オプションのいずれかの system 値を設定するアンブレラオプションとして機能: WITH_CURL, WITH_EDITLINE, WITH_ICU, WITH_LIBEVENT, WITH_LZ4, WITH_LZMA, WITH_PROTOBUF, WITH_RE2, WITH_SSL, WITH_ZLIB, WITH_ZSTD

  • -DWITH_SYSTEMD_DEBUG=bool

    systemd を使用して MySQL を実行するプラットフォームについて、追加の systemd デバッグ情報を生成するかどうか。 デフォルトは OFF です。

    このオプションは MySQL 8.0.22 で追加されました。

  • -DWITH_TCMALLOC=bool

    -ltcmalloc とリンクするかどうか。 有効にすると、組込み malloc(), calloc(), realloc() および free() ルーチンは無効になります。 デフォルトは OFF です。

    WITH_TCMALLOCWITH_JEMALLOC は相互に排他的です。

    このオプションは MySQL 8.0.22 で追加されました。

  • -DWITH_TEST_TRACE_PLUGIN=bool

    テストプロトコルトレースクライアントプラグインをビルドするかどうか (Using the Test Protocol Trace Plugin を参照)。 デフォルトでは、このオプションは無効です。 WITH_CLIENT_PROTOCOL_TRACING オプションが有効になっていないかぎり、このオプションを有効にしても効果はありません。 MySQL が両方のオプションを有効にして構成されている場合、libmysqlclient クライアントライブラリはテストプロトコルトレースプラグインが組み込まれた状態で構築され、すべての標準 MySQL クライアントがプラグインをロードします。 ただし、テストプラグインが有効になっていても、デフォルトでは何の効果もありません。 プラグインの制御は、環境変数を使用して行います。Using the Test Protocol Trace Plugin を参照してください。

    注記

    独自のプロトコルトレースプラグインを使用する場合は、WITH_TEST_TRACE_PLUGIN オプションを有効にしないでください。このようなプラグインは一度に 1 つのみロードでき、別のプラグインをロードしようとするとエラーが発生するためです。 テストプロトコルトレースプラグインを有効にして MySQL をすでに構築し、その動作を確認している場合は、独自のプラグインを使用する前に MySQL を再構築する必要があります。

    トレースプラグインの書込みの詳細は、Writing Protocol Trace Plugins を参照してください。

  • -DWITH_TSAN=bool

    ThreadSanitizer をサポートするコンパイラに対して有効にするかどうか。 デフォルトはオフです。

  • -DWITH_UBSAN=bool

    未定義の動作サニタイザをサポートするコンパイラに対して、サニタイザを有効にするかどうか。 デフォルトはオフです。

  • -DWITH_UNIT_TESTS={ON|OFF}

    有効な場合は、ユニットテストを使用して MySQL をコンパイルします。 サーバーがコンパイルされていない場合を除き、デフォルトは ON です。

  • -DWITH_UNIXODBC=1

    Connector/ODBC に関して、unixODBC サポートを有効にします。

  • -DWITH_VALGRIND=bool

    Valgrind ヘッダーファイルをコンパイルするかどうか。これにより、Valgrind API が MySQL コードに公開されます。 デフォルトは OFF です。

    Valgrind 対応のデバッグビルドを生成するには、-DWITH_VALGRIND=1 は通常 -DWITH_DEBUG=1 と組み合わされます。 Building Debug Configurations を参照してください。

  • -DWITH_ZLIB=zlib_type

    一部の機能では、サーバーが COMPRESS() および UNCOMPRESS() 関数などの圧縮ライブラリサポートでビルドされていること、およびクライアント/サーバープロトコルの圧縮を必要とします。 WITH_ZLIBzlib サポートのソースを示します。

    • bundled: 配布にバンドルされた zlib ライブラリを使用します。 これはデフォルトです。

    • system: システムの zlib ライブラリを使用します。 WITH_ZLIB がこの値に設定されている場合、zlib_decompress ユーティリティはビルドされません。 この場合、かわりに system openssl zlib コマンドを使用できます。

  • -DWITH_ZSTD=zstd_type

    zstd アルゴリズムを使用した接続圧縮 (セクション4.2.8「接続圧縮制御」 を参照) では、zstd ライブラリのサポートを使用してサーバーを構築する必要があります。 WITH_ZSTD は、zstd サポートのソースを示します:

    • bundled: ディストリビューションにバンドルされている zstd ライブラリを使用します。 これはデフォルトです。

    • system: システム zstd ライブラリを使用します。

    このオプションは MySQL 8.0.18 で追加されました。

コンパイラフラグ

  • -DCMAKE_C_FLAGS="flags"

    C コンパイラのフラグ。

  • -DCMAKE_CXX_FLAGS="flags"

    C++ コンパイラのフラグ。

  • -DWITH_DEFAULT_COMPILER_OPTIONS=bool

    cmake/build_configurations/compiler_options.cmake からのフラグを使用するかどうか。

    注記

    すべての最適化フラグは、MySQL ビルドチームによって慎重に選択およびテストされています。 オーバーライドすると予期しない結果になることがあります。自己責任において行なってください。

独自の C および C++ コンパイラフラグを指定するには、最適化に影響しないフラグの場合は CMAKE_C_FLAGS および CMAKE_CXX_FLAGS CMake オプションを使用します。

独自のコンパイラフラグを提供する場合、CMAKE_BUILD_TYPE も指定するとよいでしょう。

たとえば、32 ビットリリースビルドを 64 ビット Linux マシンに作成するには次のようにします。

mkdir bld
cd bld
cmake .. -DCMAKE_C_FLAGS=-m32 \
  -DCMAKE_CXX_FLAGS=-m32 \
  -DCMAKE_BUILD_TYPE=RelWithDebInfo

最適化に影響するフラグ (-Onumber) をセットする場合は、CMAKE_C_FLAGS_build_type および/または CMAKE_CXX_FLAGS_build_type オプションをセットする必要があります。ここで、build_typeCMAKE_BUILD_TYPE 値に対応します。 デフォルトのビルドタイプ (RelWithDebInfo) に異なる最適化を指定するには、CMAKE_C_FLAGS_RELWITHDEBINFO および CMAKE_CXX_FLAGS_RELWITHDEBINFO オプションをセットします。 たとえば、Linux で -O3 とデバッグシンボルを使用してコンパイルするには、次のようにします。

cmake .. -DCMAKE_C_FLAGS_RELWITHDEBINFO="-O3 -g" \
  -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O3 -g"

NDB Cluster をコンパイルするための CMake オプション

NDB Cluster サポートを使用して MySQL 8.0 ソースを構築する場合は、次のオプションを使用します。

  • -DMEMCACHED_HOME=dir_name

    dir_name によって示されるシステムディレクトリにインストールされている memcached (バージョン 1.6 以降) を使用してビルドを実行します。 ビルドに使用されるこのインストールからのファイルは、memcached バイナリ、ヘッダーファイル、およびライブラリに加えて、memcached_utilities ライブラリおよびヘッダーファイル engine_testapp.h を含みます。

    ndbmemcache を、バンドルの memcached ソースを使用してビルドする場合 (WITH_BUNDLED_MEMCACHED オプション)、このオプションはセットしないでください。すなわち、デフォルトでバンドルのソースが使用されます。

    SASL 承認および dtrace サポートを提供するための追加の CMake オプションは外部ソースから memcached をコンパイルするときに使用できますが、NDB Cluster にバンドルされている memcached ソースではこれらのオプションは現在有効になっていません。

  • -NDB_UTILS_LINK_DYNAMIC={ON|OFF}

    ndb_drop_table などの NDB ユーティリティーを ndbclient と静的にリンクするか (OFF)、動的にリンクするか (ON) を制御します。OFF (静的リンク) がデフォルトです。 通常、静的リンクは、LD_LIBRARY_PATH の問題を回避するため、または複数のバージョンの ndbclient がインストールされている場合に、これらを構築する場所で使用されます。 このオプションは、Docker イメージを作成することを目的としており、ターゲット環境が正確に制御される可能性があり、イメージサイズを小さくすることが望ましい場合もあります。

    NDB 8.0.22 に追加されました。

  • -DWITH_BUNDLED_LIBEVENT={ON|OFF}

    ndbmemcached サポートを使用して NDB Cluster を構築する場合は、NDB Cluster ソースに含まれている libevent を使用します。 デフォルトで有効。 OFF では、かわりにシステム libevent が使用されます。

  • -DWITH_BUNDLED_MEMCACHED={ON|OFF}

    NDB Cluster ソースツリーに含まれる memcached ソースを構築し、ndbmemcache エンジンの構築時に結果の memcached サーバーを使用します。 この場合、make installmemcached バイナリをインストール bin ディレクトリに配置し、ndbmemcache エンジン共有ライブラリファイル ndb_engine.so をインストール lib ディレクトリに配置します。

    このオプションはデフォルトで ON です。

  • -DWITH_CLASSPATH=path

    NDB Cluster Connector for Java を構築するためのクラスパスを設定します。 デフォルトは空です。 -DWITH_NDB_JAVA=OFF を使用する場合、このオプションは無視されます。

  • -DWITH_ERROR_INSERT={ON|OFF}

    NDB カーネルのエラーインジェクションを有効化します。 テスト専用です。本番環境のバイナリのビルドに使用することは意図していません。 デフォルトは OFF です。

  • -DWITH_NDBCLUSTER_STORAGE_ENGINE={ON|OFF}

    これは WITH_NDBCLUSTER のエイリアスです。

  • -DWITH_NDBCLUSTER={ON|OFF}

    mysqldNDB (NDBCLUSTER) ストレージエンジンのサポートのビルドおよびリンク。 デフォルトは ON です。

  • -DWITH_NDBMTD={ON|OFF}

    マルチスレッドデータノード実行可能ファイル ndbmtd を構築します。 デフォルトは ON です。

  • -DWITH_NDB_BINLOG={ON|OFF}

    このオプションを使用して、mysqld ビルド内でデフォルトでバイナリロギングを有効にします。 デフォルトで ON です。

  • -DWITH_NDB_DEBUG={ON|OFF}

    NDB Cluster バイナリのデバッグバージョンの構築を有効にします。 デフォルトで OFF です。

  • -DWITH_NDB_JAVA={ON|OFF}

    ClusterJ を含む Java サポートを使用した NDB Cluster の構築を有効にします。

    このオプションはデフォルトで ON です。 NDB Cluster を Java サポート付きでコンパイルしない場合は、CMake の実行時に -DWITH_NDB_JAVA=OFF を指定して明示的に無効にする必要があります。 そうしないと、Java が検出できない場合にビルドの構成が失敗します。

  • -DWITH_NDB_PORT=port

    この port をデフォルトで使用するように構築された NDB Cluster 管理サーバー (ndb_mgmd) を生成します。 このオプションがセットされていない場合、結果の管理サーバーはデフォルトでポート 1186 を使用しようとします。

  • -DWITH_NDB_TEST={ON|OFF}

    有効の場合、NDB API テストプログラムをインクルードします。 デフォルトは OFF です。

  • -DWITH_PLUGIN_NDBCLUSTER={ON|OFF}

    WITH_NDBCLUSTER のエイリアス。