CMake プログラムを使用すると、MySQL ソース配布の構成方法を大幅に制御できます。 通常これは、CMake コマンド行でオプションを使用して行います。 CMake がサポートするオプションの詳細は、トップレベルのソースディレクトリで次のコマンドのいずれかを実行します。
cmake . -LH
ccmake .
特定の環境変数を使用して CMake に影響を与えることもできます。 セクション4.9「環境変数」を参照してください。
boolean オプションでは、値を 1 または ON
に指定してオプションを有効にするか、0 または OFF
に指定して無効にします。
多くのオプションはコンパイル時のデフォルトを構成し、それらはサーバー起動時にオーバーライドできます。 たとえば、デフォルトのインストールベースディレクトリ、TCP/IP ポート番号、および Unix ソケットファイルを構成する CMAKE_INSTALL_PREFIX
、MYSQL_TCP_PORT
、および MYSQL_UNIX_ADDR
の各オプションは、サーバー起動時に mysqld の --basedir
、--port
、および --socket
オプションで変更できます。 該当する場合は、構成オプションの説明で対応する mysqld スタートアップオプションを示します。
次のセクションでは、CMake オプションについてより詳しく説明します。
次の表は、使用可能な CMake オプションを示しています。 デフォルト
カラムで、PREFIX
は CMAKE_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 をサーバーに静的にコンパイル |
-
このオプションは、オラクルが公式な MySQL リリースのバイナリ配布を生成するために使用するのと同じビルドオプションでソース配布を構成します。
-
-DBUNDLE_RUNTIME_LIBRARIES=
bool
ランタイムライブラリを Windows 用のサーバー MSI および Zip パッケージにバンドルするかどうか。
-
生成するビルドのタイプ
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=ON
を使用して CMake を起動します。
CMAKE_INSTALL_PREFIX
オプションは、ベースインストールディレクトリを示します。 コンポーネントの場所を示す、INSTALL_
という形式の名前を持つその他のオプションは、プリフィクスに相対的なものとして解釈され、その値は相対パス名です。 それらの値はプリフィクスを含みません。
xxx
-
-DCMAKE_INSTALL_PREFIX=
dir_name
インストールのベースディレクトリ。
この値は、サーバー起動時に
--basedir
オプションで設定できます。 -
ユーザープログラムをインストールする場所。
-
ドキュメントをインストールする場所。
-
-DINSTALL_DOCREADMEDIR=
dir_name
README
ファイルをインストールする場所。 -
ヘッダーファイルをインストールする場所。
-
Info ファイルをインストールする場所。
-
事前定義インストールレイアウトを選択します。
STANDALONE
:.tar.gz
および.zip
パッケージで使用されるのと同じレイアウト。 これはデフォルトです。RPM
: RPM パッケージと同様のレイアウト。SVR4
: Solaris パッケージレイアウト。DEB
: DEB パッケージレイアウト (実験的)。
事前定義のレイアウトを選択できますが、ほかのオプションを指定することによって、個々のコンポーネントのインストール場所を変更できます。 例:
cmake . -DINSTALL_LAYOUT=SVR4 -DMYSQL_DATADIR=/var/mysql/data
INSTALL_LAYOUT
の値によって、secure_file_priv
、keyring_encrypted_file_data
およびkeyring_file_data
システム変数のデフォルト値が決まります。 セクション5.1.8「サーバーシステム変数」 および セクション6.4.4.13「キーリングシステム変数」 のこれらの変数の説明を参照してください。 -
ライブラリファイルをインストールする場所。
-
マニュアルページをインストールする場所。
-
-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
です。この場合は、最初に削除されます。 -
プラグインディレクトリの場所。
この値は、サーバー起動時に
--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 機能を使用する場合、mysqld は setsuid であり、ローダーは$ORIGIN
を含むRPATH
を無視します。 これを解決するには、ターゲットの宛先が既知であるため、ディレクトリへの明示的なフルパスが mysqld の DEB および RPM バリアントに設定されます。 tarball インストールでは、patchelf などのツールを使用した mysqld のパッチ適用が必要です。 -
mysqld サーバーをインストールする場所。
-
-DINSTALL_SECURE_FILE_PRIVDIR=
dir_name
secure_file_priv
システム変数のデフォルト値。 デフォルト値はプラットフォーム固有で、INSTALL_LAYOUT
CMake オプションの値によって異なります。セクション5.1.8「サーバーシステム変数」 のsecure_file_priv
システム変数の説明を参照してください。 -
aclocal/mysql.m4
をインストールする場所。 -
-DINSTALL_STATIC_LIBRARIES=
bool
静的ライブラリをインストールするかどうか。 デフォルトは
ON
です。OFF
に設定されている場合、これらのライブラリはインストールされません:libmysqlclient.a
、libmysqlservices.a
。 -
-DINSTALL_SUPPORTFILESDIR=
dir_name
追加のサポートファイルをインストールする場所。
-
mysqld バイナリ内のシンボルの順序をランダム化するかどうか。 デフォルトは
OFF
です。 このオプションは、デバッグ目的でのみ有効にしてください。 -
LINK_RANDOMIZE
オプションのシード値。 値は文字列です。 デフォルトは、任意の選択肢であるmysql
です。 -
MySQL データディレクトリの場所。
この値は、サーバー起動時に
--datadir
オプションで設定できます。 -
ODBC インクルードディレクトリの場所。Connector/ODBC の構成中に使用されることがあります。
-
ODBC ライブラリディレクトリの場所。Connector/ODBC の構成中に使用されることがあります。
-
デフォルトの
my.cnf
オプションファイルディレクトリ。この場所はサーバー起動時にはセットできませんが、
--defaults-file=
オプションを使用して、指定されたオプションファイルでサーバーを起動できます。ここで、file_name
file_name
はファイルへのフルパス名です。 -
systemd によって MySQL が管理されている場合に PID ファイルを作成するディレクトリの名前。 デフォルトは
/var/run/mysqld
です。これは、INSTALL_LAYOUT
の値に従って暗黙的に変更される場合があります。WITH_SYSTEMD
が有効になっていないかぎり、このオプションは無視されます。 -
MySQL が systemd によって管理されている場合に使用する MySQL サービスの名前。 デフォルトは
mysqld
です。これは、INSTALL_LAYOUT
の値に従って暗黙的に変更される場合があります。WITH_SYSTEMD
が有効になっていないかぎり、このオプションは無視されます。 -
tmpdir
システム変数に使用されるデフォルトの場所。 指定しない場合は、値はデフォルトでP_tmpdir
in<stdio.h>
になります。
ストレージエンジンはプラグインとしてビルドされます。 プラグインは、静的モジュール (サーバー内にコンパイル) または動的モジュール (使用する前に、INSTALL PLUGIN
ステートメントまたは --plugin-load
オプションを使用してサーバーにインストールする必要のあるダイナミックライブラリとしてビルド) としてビルドできます。 一部のプラグインは、静的または動的ビルドをサポートしない場合があります。
InnoDB
, MyISAM
, MERGE
, MEMORY
および CSV
エンジンは必須 (常にサーバーにコンパイルされる) であり、明示的にインストールする必要はありません。
ストレージエンジンをサーバー内に静的にコンパイルするには、-DWITH_
を使用します。 使用可能な engine
_STORAGE_ENGINE=1engine
値には、ARCHIVE
, BLACKHOLE
, EXAMPLE
, FEDERATED
、NDB
または 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
-
このオプションは、バイナリでの
.gdb_index
セクションの生成を有効にするかどうかを決定します。これにより、デバッガへのロードが高速になります。 このオプションはデフォルトで無効になっています。lld リンカーが使用され、lld または GNU gold 以外のリンカーが使用されている場合は無効になります。このオプションは MySQL 8.0.18 で追加されました。
-
コンパイル環境に関する説明コメント。 MySQL 8.0.14 では、mysqld は
COMPILATION_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
は、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
、utf8mb4
、utf16
、utf16le
、utf32
のいずれかにできます。 許可される文字セットは、cmake/character_sets.cmake
ファイルにCHARSETS_AVAILABLE
の値としてリストされています。この値は、サーバー起動時に
--character_set_server
オプションで設定できます。 -
-DDEFAULT_COLLATION=
collation_name
サーバーの照合順序。 デフォルトでは、MySQL は
utf8mb4_0900_ai_ci
を使用します。 各文字セットにどの照合順序を使用するかを決めるにはSHOW COLLATION
ステートメントを使用します。この値は、サーバー起動時に
--collation_server
オプションで設定できます。 -
パフォーマンススキーマ条件インストゥルメンテーションを除外するかどうか。 デフォルトは
OFF
(include) です。 -
パフォーマンススキーマファイルインストゥルメンテーションを除外するかどうか。 デフォルトは
OFF
(include) です。 -
パフォーマンススキーマアイドルインストゥルメンテーションを除外するかどうか。 デフォルトは
OFF
(include) です。 -
パフォーマンススキーマメモリーインストゥルメンテーションを除外するかどうか。 デフォルトは
OFF
(include) です。 -
パフォーマンススキーマメタデータの計測を除外するかどうか。 デフォルトは
OFF
(include) です。 -
パフォーマンススキーマミューテックスのインストゥルメンテーションを除外するかどうか。 デフォルトは
OFF
(include) です。 -
パフォーマンススキーマ rwlock インストゥルメンテーションを除外するかどうか。 デフォルトは
OFF
(include) です。 -
パフォーマンススキーマソケットインストゥルメンテーションを除外するかどうか。 デフォルトは
OFF
(include) です。 -
パフォーマンススキーマストアドプログラムインストゥルメンテーションを除外するかどうか。 デフォルトは
OFF
(include) です。 -
パフォーマンススキーマステージインストゥルメンテーションを除外するかどうか。 デフォルトは
OFF
(include) です。 -
パフォーマンススキーマステートメントインストゥルメンテーションを除外するかどうか。 デフォルトは
OFF
(include) です。 -
-DDISABLE_PSI_STATEMENT_DIGEST=
bool
パフォーマンススキーマ statement_digest インストゥルメンテーションを除外するかどうか。 デフォルトは
OFF
(include) です。 -
「パフォーマンススキーマ」テーブルインストゥルメンテーションを除外するかどうか。 デフォルトは
OFF
(include) です。 -
ビルド共有ライブラリを無効にし、位置依存コードをコンパイルするかどうか。 デフォルトは
OFF
(位置独立コードのコンパイル) です。このオプションは未使用であり、MySQL 8.0.18 で削除されました。
-
パフォーマンススキーマプリペアドステートメントのインスタンスインストゥルメンテーションを除外します。 デフォルトは
OFF
(include) です。 -
パフォーマンススキーマスレッドインストゥルメンテーションを除外します。 デフォルトは
OFF
(include) です。ほかのインストゥルメンテーションはスレッドに依存しているため、インストゥルメンテーションなしで構築する場合にのみスレッドを無効にします。
-
-DDISABLE_PSI_TRANSACTION=
bool
パフォーマンススキーマのトランザクションインストゥルメンテーションを除外します。 デフォルトは
OFF
(include) です。 -
パフォーマンススキーマデータロックインストゥルメンテーションを除外します。 デフォルトは
OFF
(include) です。 -
パフォーマンススキーマサーバーエラーの計測を除外します。 デフォルトは
OFF
(include) です。 -
Boost ライブラリをダウンロードするかどうか デフォルトは
OFF
です。Boost の使用方法の詳細は、
WITH_BOOST
オプションを参照してください。 -
-DDOWNLOAD_BOOST_TIMEOUT=
seconds
Boost ライブラリをダウンロードするためのタイムアウト (秒)。 デフォルトは 600 秒です。
Boost の使用方法の詳細は、
WITH_BOOST
オプションを参照してください。 -
オプションファイルをダウンロードするかどうか。 たとえば、このオプションを有効にすると、CMake は、ユニットテストを実行するためにテストスイートで使用される Google テストディストリビューション、または GCS Java ラッパーの構築に必要な Ant と JUnit をダウンロードします。
-
-DENABLE_EXPERIMENTAL_SYSVARS=
bool
実験的な
InnoDB
システム変数を有効にするかどうか。 試験的なシステム変数は、MySQL 開発に関与するものを対象としており、開発環境またはテスト環境でのみ使用する必要があり、将来の MySQL リリースでは予告なしに削除される可能性があります。 実験システム変数については、MySQL ソースツリーの/storage/innobase/handler/ha_innodb.cc
を参照してください。 試験的なシステム変数は、「PLUGIN_VAR_EXPERIMENTAL」 を検索することで識別できます。 -
gcov サポートをインクルードするかどうか (Linux のみ)。
-
gprof
を有効にするかどうか (最適化された Linux ビルドのみ)。 -
このオプションは、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 のセキュリティー上の考慮事項」を参照してください。 -
クエリープロファイリングコードを有効にするかどうか (
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
を使用します。 -
プロファイルガイド付き最適化 (PGO) データを生成するかどうか。 このオプションは、GCC を使用した PGO の実験に使用できます。
FPROFILE_GENERATE
およびFPROFILE_USE
の使用の詳細は、MySQL ソース配布のcmake/fprofile.cmake
ファイルを参照してください。 これらのオプションは GCC 8 および 9 でテストされています。このオプションは MySQL 8.0.19 で追加されました。
-
プロファイルガイド付き最適化 (PGO) データを使用するかどうか。 このオプションは、GCC を使用した PGO の実験に使用できます。
FPROFILE_GENERATE
およびFPROFILE_USE
の使用の詳細は、MySQL ソース配布のcmake/fprofile.cmake
ファイルを参照してください。 これらのオプションは GCC 8 および 9 でテストされています。FPROFILE_USE
を有効にすると、WITH_LTO
も有効になります。このオプションは MySQL 8.0.19 で追加されました。
-
Linux で
-DBUILD_CONFIG=mysql_release
オプションが与えられた場合、デフォルトでlibaio
ライブラリがリンクされていなければなりません。libaio
がない場合、またはインストールしない場合、-DIGNORE_AIO_CHECK=1
を指定するとそのチェックを抑制できます。 -
テーブル当たりのインデックスの最大数。 デフォルトは 64 です。 最大値は 255 です。 64 より小さい値は無視され、デフォルトの 64 が使用されます。
-
MySQL 管理者固有の開発環境を有効にするかどうか。 有効の場合、このオプションによりコンパイラの警告はエラーになります。
-
InnoDB
で使用される mutex タイプ。 次のようなオプションがあります。event
: イベント相互排他ロックを使用します。 これはデフォルト値であり、元のInnoDB
mutex 実装です。sys
: UNIX システムで POSIX mutex を使用します。 使用可能な場合は、Windows でCRITICAL_SECTION
onjects を使用します。futex
: 待機スレッドをスケジュールするには、条件変数のかわりに Linux futex を使用します。
-
X プラグイン が TCP/IP 接続をリスニングするポート番号。 デフォルトは 33060 です。
この値は、サーバーの起動時に
mysqlx_port
システム変数を使用して設定できます。 -
サーバーが X プラグイン ソケット接続をリスニングする Unix ソケットファイルのパス。 これは絶対パス名でなければなりません。 デフォルトは
/tmp/mysqlx.sock
です。この値は、サーバーの起動時に
mysqlx_port
システム変数を使用して設定できます。 -
Windows または macOS の場合、プロジェクトファイル名に組み込むプロジェクト名。
-
サーバーが TCP/IP 接続を待機するポート番号。 デフォルトは 3306 です。
この値は、サーバー起動時に
--port
オプションで設定できます。 -
サーバーがソケット接続を待機する Unix ソケットファイルのパス。 これは絶対パス名でなければなりません。 デフォルトは
/tmp/mysql.sock
です。この値は、サーバー起動時に
--socket
オプションで設定できます。 -
オプティマイザのトレースをサポートするかどうか。 「MySQL Internals: Tracing the Optimizer」を参照してください。
-
Linux システム上のビルドの場合、このオプションはビルドの場所と時間に関係なくビルド結果を作成するために特別な注意を払うかどうかを制御します。
このオプションは MySQL 8.0.11 で追加されました。 MySQL 8.0.12 では、
RelWithDebInfo
ビルド用のON
にデフォルト設定されます。 -
GNU gold リンカーが使用可能で明示的に無効になっていない場合、CMake は構築プロセスを GNU gold リンカーにリンクします。 このリンカーの使用を無効にするには、
-DUSE_LD_GOLD=OFF
オプションを指定します。 -
構築プロセスが使用可能であり、明示的に無効になっていない場合、CMake はその構築プロセスを Clang 用の llvm lld リンカーにリンクします。 このリンカーの使用を無効にするには、
-DUSE_LD_LLD=OFF
オプションを指定します。このオプションは MySQL 8.0.16 で追加されました。
-
Windows で関数のインライン化を無効にするかどうか。 デフォルトは off (インライン化が有効) です。
-
GCS Java ラッパーの構築時に必要な Ant へのパスを設定します。 既存の
WITH_BOOST
CMake オプションと同様の方法で動作します。 Ant tarball またはすでに解凍されたアーカイブが保存されているディレクトリのパスにWITH_ANT
を設定します。WITH_ANT
が設定されていない場合、または特別な値system
を使用して設定されている場合、ビルドでは$PATH
にバイナリ ant が存在すると想定されます。 -
AddressSanitizer をサポートするコンパイラに対して有効にするかどうか。 デフォルトはオフです。
-
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 プラガブル認証」を参照してください。) このオプションが指定され、プラグインをコンパイルできない場合、ビルドは失敗します。
-
Amazon Web Services ソフトウェア開発キットの場所。
-
MySQL をビルドするには Boost ライブラリが必要です。 これらの CMake オプションを使用すると、ライブラリのソースの場所、およびそれを自動的にダウンロードするかどうかを制御できます:
-
-DWITH_BOOST=
では、ブーストライブラリディレクトリの場所を指定します。path_name
BOOST_ROOT
またはWITH_BOOST
環境変数を設定してブーストの場所を指定することもできます。-DWITH_BOOST=system
も許可され、コンパイルホストの標準の場所に正しいバージョンの Boost がインストールされていることを示します。 この場合、MySQL ソース配布に含まれる任意のバージョンではなく、インストールされている Boost のバージョンが使用されます。 -DDOWNLOAD_BOOST=
は、Boost ソースが指定された場所に存在しない場合にダウンロードするかどうかを指定します。 デフォルトはbool
OFF
です。Boost ライブラリをダウンロードするためのタイムアウトを秒単位で
-DDOWNLOAD_BOOST_TIMEOUT=
に設定します。 デフォルトは 600 秒です。seconds
たとえば、通常、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
オプションも参照してください。 -
curl ライブラリの場所。
curl_type
は、system
(システム curl ライブラリを使用) または curl ライブラリへのパス名です。 -
デバッグサポートを含めるかどうか。
デバッグサポートを有効にして 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 で削除されました。 -
どの
libedit
/editline
ライブラリを使用するか。 許可される値は、bundled
(デフォルト) およびsystem
です。 -
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 バージョンを検出して使用するのを防ぐことができるため、system
のicu_type
値を使用するよりも望ましい場合があります。 (同じことを可能にする別の方法は、WITH_ICU
をsystem
に設定し、CMAKE_PREFIX_PATH
オプションをpath_name
に設定することです。)
-
-
-DWITH_INNODB_EXTRA_DEBUG=
bool
追加の InnoDB デバッグサポートを含めるかどうか。
WITH_INNODB_EXTRA_DEBUG
を有効にすると、追加の InnoDB デバッグチェックが有効になります。 このオプションは、WITH_DEBUG
が有効な場合にのみ有効にできます。 -
memcached 共有ライブラリ (
libmemcached.so
およびinnodb_engine.so
) を生成するかどうか。 -
-ljemalloc
とリンクするかどうか。 有効にすると、組込みmalloc()
,calloc()
,realloc()
およびfree()
ルーチンは無効になります。 デフォルトはOFF
です。WITH_JEMALLOC
とWITH_TCMALLOC
は相互に排他的です。このオプションは MySQL 8.0.16 で追加されました。
-
keyring_file
プラグインに付属するテストプログラムをビルドするかどうか。 デフォルトはOFF
です。 テストファイルのソースコードは、plugin/keyring/keyring-test
ディレクトリにあります。 -
どの
libevent
ライブラリを使用するか。 許可される値は、bundled
(デフォルト) およびsystem
です。 MySQL 8.0.21 より前では、system
を指定すると、システムlibevent
ライブラリが存在する場合はそれが使用され、それ以外の場合はエラーが発生します。 MySQL 8.0.21 以降では、system
が指定されていて、システムlibevent
ライブラリが見つからない場合、エラーが発生し、バンドルされているlibevent
は使用されません。libevent
ライブラリは、InnoDB
memcached、X プラグイン、および MySQL Router に必要です。 -
libwrap
(TCP ラッパー) サポートを含めるかどうか。 -
LOCK_ORDER ツールを有効にするかどうか。 デフォルトでは、このオプションは無効になっており、サーバービルドにツールは含まれていません。 ツールが有効な場合、LOCK_ORDER ツールは使用可能であり、セクション5.9.3「LOCK_ORDER ツール」 で説明されているように使用できます。
注記WITH_LOCK_ORDER
オプションを有効にすると、MySQL ビルドに flex プログラムが必要になります。このオプションは MySQL 8.0.17 で追加されました。
-
AddressSanitizer を使用せずに LeakSanitizer を実行するかどうか。 デフォルトは
OFF
です。このオプションは MySQL 8.0.16 で追加されました。
-
コンパイラでサポートされている場合に、リンク時オプティマイザを有効にするかどうか。
FPROFILE_USE
が有効でないかぎり、デフォルトはOFF
です。このオプションは MySQL 8.0.13 で追加されました。
-
WITH_LZ4
は、zlib
サポートのソースを示します:bundled
: ディストリビューションにバンドルされているlz4
ライブラリを使用します。 これはデフォルトです。system
: システムlz4
ライブラリを使用します。WITH_LZ4
がこの値に設定されている場合、lz4_decompress ユーティリティはビルドされません。 この場合、かわりに system lz4 コマンドを使用できます。
-
含める 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 フルテキストパーサープラグイン」を参照してください。
-
MemorySanitizer をサポートするコンパイラに対して有効にするかどうか。 デフォルトはオフです。
このオプションを有効にするには、MySQL にリンクされているすべてのライブラリもオプションを有効にしてコンパイルされている必要があります。
-
Visual Studio CRT メモリーリークトレースを有効にするかどうか。 デフォルトは
OFF
です。 -
X プラグイン のサポート付きでビルドするかどうか。 デフォルトの
ON
。 第20章「ドキュメントストアとしての MySQL の使用」を参照してください。 -
NUMA メモリー割当てポリシーを明示的に設定します。 CMake では、現在のプラットフォームに
NUMA
サポートがあるかどうかに基づいて、デフォルトのWITH_NUMA
値が設定されます。 NUMA がサポートされていないプラットフォームでは、CMake は次のように動作します:NUMA オプションなし (通常の場合) では、CMake は正常に続行され、この警告のみが生成されます: NUMA ライブラリがないか、必要なバージョンがありません
-DWITH_NUMA=ON
では、CMake はこのエラーで異常終了: NUMA ライブラリがないか、必要なバージョンがありません
-
使用するプロトコルバッファパッケージ。
protobuf_type
は、次のいずれかの値です:bundled
: 配布にバンドルされているパッケージを使用します。 これはデフォルトです。 オプションで、INSTALL_PRIV_LIBDIR
を使用して動的 Protobuf ライブラリディレクトリを変更します。system
: システムにインストールされているパッケージを使用します。
その他の値は無視され、
bundled
にフォールバックされます。 -
迅速な開発サイクルプラグインを構築するかどうか。 有効にすると、これらのプラグインを含むビルドツリーに
rapid
ディレクトリが作成されます。 無効にすると、ビルドツリーにrapid
ディレクトリは作成されません。rapid
ディレクトリがソースツリーから削除されないかぎり、デフォルトはON
です。この場合、デフォルトはOFF
になります。 -
-DWITH_RAPIDJSON=
rapidjson_type
含める RapidJSON ライブラリサポートのタイプ。
rapidjson_type
は、次のいずれかの値です:bundled
: ディストリビューションにバンドルされている RapidJSON ライブラリを使用します。 これはデフォルトです。system
: システム RapidJSON ライブラリを使用します。 バージョン 1.1.0 以上が必要です。
このオプションは MySQL 8.0.13 で追加されました。
-
含める RE2 ライブラリサポートのタイプ。
re2_type
は、次のいずれかの値です:bundled
: ディストリビューションにバンドルされている RE2 ライブラリを使用します。 これはデフォルトです。system
: システム RE2 ライブラリを使用します。
MySQL 8.0.18 の時点で、MySQL は RE2 ライブラリを使用しなくなり、このオプションは削除されました。
-
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-Win64、C:/OpenSSL、C:/OpenSSL-Win32 および C:/OpenSSL-Win64 がチェックされます。 yes
: これはsystem
のシノニムです。
-
path_name
は、使用する OpenSSL インストールのパス名です。 これは、CMake がシステムにインストールされている古いバージョンまたは正しくない OpenSSL バージョンを検出して使用するのを防ぐことができるため、system
のssl_type
値を使用するよりも望ましい場合があります。 (同じことを可能にする別の方法は、WITH_SSL
をsystem
に設定し、CMAKE_PREFIX_PATH
オプションをpath_name
に設定することです。)
SSL ライブラリの構成の詳細は、を参照してください セクション2.9.6「SSL ライブラリサポートの構成」.
-
-
systemd サポートファイルのインストールを有効にするかどうか。 デフォルトでは、このオプションは無効です。 有効にすると、systemd サポートファイルがインストールされ、mysqld_safe や System V 初期化スクリプトなどのスクリプトはインストールされません。 systemd を使用できないプラットフォームでは、
WITH_SYSTEMD
を有効にすると、CMake からエラーが発生します。systemd の使用の詳細は、セクション2.5.9「systemd を使用した MySQL Server の管理」 を参照してください。 このセクションでは、
[mysqld_safe]
オプショングループで以前に指定されたオプションの指定についても説明します。 systemd の使用時に mysqld_safe はインストールされないため、このようなオプションは別の方法で指定する必要があります。 -
このオプションは、明示的に設定されていない次の CMake オプションのいずれかの
system
値を設定する「アンブレラ」オプションとして機能:WITH_CURL
,WITH_EDITLINE
,WITH_ICU
,WITH_LIBEVENT
,WITH_LZ4
,WITH_LZMA
,WITH_PROTOBUF
,WITH_RE2
,WITH_SSL
,WITH_ZLIB
,WITH_ZSTD
。 -
systemd を使用して MySQL を実行するプラットフォームについて、追加の systemd デバッグ情報を生成するかどうか。 デフォルトは
OFF
です。このオプションは MySQL 8.0.22 で追加されました。
-
-ltcmalloc
とリンクするかどうか。 有効にすると、組込みmalloc()
,calloc()
,realloc()
およびfree()
ルーチンは無効になります。 デフォルトはOFF
です。WITH_TCMALLOC
とWITH_JEMALLOC
は相互に排他的です。このオプションは MySQL 8.0.22 で追加されました。
-
テストプロトコルトレースクライアントプラグインをビルドするかどうか (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 を参照してください。
-
ThreadSanitizer をサポートするコンパイラに対して有効にするかどうか。 デフォルトはオフです。
-
未定義の動作サニタイザをサポートするコンパイラに対して、サニタイザを有効にするかどうか。 デフォルトはオフです。
-
有効な場合は、ユニットテストを使用して MySQL をコンパイルします。 サーバーがコンパイルされていない場合を除き、デフォルトは ON です。
-
Connector/ODBC に関して、unixODBC サポートを有効にします。
-
Valgrind ヘッダーファイルをコンパイルするかどうか。これにより、Valgrind API が MySQL コードに公開されます。 デフォルトは
OFF
です。Valgrind 対応のデバッグビルドを生成するには、
-DWITH_VALGRIND=1
は通常-DWITH_DEBUG=1
と組み合わされます。 Building Debug Configurations を参照してください。 -
一部の機能では、サーバーが
COMPRESS()
およびUNCOMPRESS()
関数などの圧縮ライブラリサポートでビルドされていること、およびクライアント/サーバープロトコルの圧縮を必要とします。WITH_ZLIB
はzlib
サポートのソースを示します。bundled
: 配布にバンドルされたzlib
ライブラリを使用します。 これはデフォルトです。system
: システムのzlib
ライブラリを使用します。WITH_ZLIB
がこの値に設定されている場合、zlib_decompress ユーティリティはビルドされません。 この場合、かわりに system openssl zlib コマンドを使用できます。
-
zstd
アルゴリズムを使用した接続圧縮 (セクション4.2.8「接続圧縮制御」 を参照) では、zstd
ライブラリのサポートを使用してサーバーを構築する必要があります。WITH_ZSTD
は、zstd
サポートのソースを示します:bundled
: ディストリビューションにバンドルされているzstd
ライブラリを使用します。 これはデフォルトです。system
: システムzstd
ライブラリを使用します。
このオプションは MySQL 8.0.18 で追加されました。
独自の 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
最適化に影響するフラグ (-O
) をセットする場合は、number
CMAKE_C_FLAGS_
および/または build_type
CMAKE_CXX_FLAGS_
オプションをセットする必要があります。ここで、build_type
build_type
は CMAKE_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 サポートを使用して MySQL 8.0 ソースを構築する場合は、次のオプションを使用します。
-
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 install は memcached バイナリをインストールbin
ディレクトリに配置し、ndbmemcache
エンジン共有ライブラリファイルndb_engine.so
をインストールlib
ディレクトリに配置します。このオプションはデフォルトで ON です。
-
NDB Cluster Connector for Java を構築するためのクラスパスを設定します。 デフォルトは空です。
-DWITH_NDB_JAVA=OFF
を使用する場合、このオプションは無視されます。 -
NDB
カーネルのエラーインジェクションを有効化します。 テスト専用です。本番環境のバイナリのビルドに使用することは意図していません。 デフォルトはOFF
です。 -
-DWITH_NDBCLUSTER_STORAGE_ENGINE={ON|OFF}
これは
WITH_NDBCLUSTER
のエイリアスです。 -
mysqld で
NDB
(NDBCLUSTER
) ストレージエンジンのサポートのビルドおよびリンク。 デフォルトはON
です。 -
マルチスレッドデータノード実行可能ファイル ndbmtd を構築します。 デフォルトは
ON
です。 -
このオプションを使用して、mysqld ビルド内でデフォルトでバイナリロギングを有効にします。 デフォルトで ON です。
-
NDB Cluster バイナリのデバッグバージョンの構築を有効にします。 デフォルトで OFF です。
-
ClusterJ
を含む Java サポートを使用した NDB Cluster の構築を有効にします。このオプションはデフォルトで ON です。 NDB Cluster を Java サポート付きでコンパイルしない場合は、CMake の実行時に
-DWITH_NDB_JAVA=OFF
を指定して明示的に無効にする必要があります。 そうしないと、Java が検出できない場合にビルドの構成が失敗します。 -
この
port
をデフォルトで使用するように構築された NDB Cluster 管理サーバー (ndb_mgmd) を生成します。 このオプションがセットされていない場合、結果の管理サーバーはデフォルトでポート 1186 を使用しようとします。 -
有効の場合、NDB API テストプログラムをインクルードします。 デフォルトは OFF です。
-
-DWITH_PLUGIN_NDBCLUSTER={ON|OFF}
WITH_NDBCLUSTER
のエイリアス。