2020年7月31日14:11:54
需要注意的是mysql使用一分部boost的庫,所以需要會安裝boost,也很簡單
window安裝boost,https://www.cnblogs.com/zx-admin/p/11792567.html
linux安裝 下載地址 https://dl.bintray.com/boostorg/release/1.73.0/source/
wget https://dl.bintray.com/boostorg/release/1.73.0/source/boost_1_73_0.tar.gz tar xfboost_1_73_0.tar.gz -C /usr/local/ mv /usr/local/boost_1_60_0 /usr/local/boost
文檔官方URL :https://dev.mysql.com/doc/refman/8.0/en/source-configuration-options.html
該CMake的程序提供的控制權如何配置MySQL源碼分發很大。通常,您可以使用CMake命令行上的選項來執行此操作 。有關CMake支持的選項的信息,請在頂級源目錄中運行以下命令之一:
cmake . -LH ccmake .
您還可以使用某些環境變量來影響CMake。請參見 第4.9節“環境變量”。
對於布爾選項,可以將值指定為1或ON
啟用該選項,或者將其指定 為0或 OFF
禁用該選項。
許多選項配置了編譯時默認值,這些默認值可以在服務器啟動時被覆蓋。例如, CMAKE_INSTALL_PREFIX
, MYSQL_TCP_PORT
,和 MYSQL_UNIX_ADDR
該配置缺省安裝基本目錄的位置,TCP / IP端口號和Unix套接字文件選項可以在與服務器啟動而改變--basedir
, --port
和 --socket
選項 的mysqld。在適用的情況下,配置選項描述指示相應的mysqld 啟動選項。
以下各節提供有關CMake選項的更多信息 。
下表顯示了可用的CMake 選項。在該Default
列中, PREFIX
代表CMAKE_INSTALL_PREFIX
選項的值,該 選項指定安裝基礎目錄。該值用作多個安裝子目錄的父位置。
表2.13 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 |
||
CMAKE_INSTALL_PRIV_LIBDIR |
安裝專用庫目錄 | 8.0.18 | ||
COMPILATION_COMMENT |
關於編譯環境的評論 | |||
COMPILATION_COMMENT_SERVER |
關於供mysqld使用的編譯環境的評論 | 8.0.14 | ||
COMPRESS_DEBUG_SECTIONS |
壓縮二進制可執行文件的調試部分 | OFF |
8.0.23 | |
CPACK_MONOLITHIC_INSTALL |
軟件包構建是否生成單個文件 | OFF |
||
DEFAULT_CHARSET |
默認服務器字符集 | utf8mb4 |
||
DEFAULT_COLLATION |
默認服務器排序規則 | utf8mb4_0900_ai_ci |
||
DISABLE_DATA_LOCK |
排除性能模式數據鎖檢測 | OFF |
||
DISABLE_PSI_COND |
排除性能模式條件檢測 | OFF |
||
DISABLE_PSI_ERROR |
排除性能模式服務器錯誤檢測 | OFF |
||
DISABLE_PSI_FILE |
排除性能架構文件檢測 | OFF |
||
DISABLE_PSI_IDLE |
排除性能模式空閑檢測 | OFF |
||
DISABLE_PSI_MEMORY |
排除性能架構內存檢測 | OFF |
||
DISABLE_PSI_METADATA |
排除性能架構元數據檢測 | OFF |
||
DISABLE_PSI_MUTEX |
排除性能架構互斥檢測 | OFF |
||
DISABLE_PSI_PS |
排除性能模式准備好的語句 | OFF |
||
DISABLE_PSI_RWLOCK |
排除性能模式rwlock工具 | OFF |
||
DISABLE_PSI_SOCKET |
排除性能架構套接字工具 | OFF |
||
DISABLE_PSI_SP |
排除性能模式存儲程序檢測 | OFF |
||
DISABLE_PSI_STAGE |
排除性能模式階段檢測 | OFF |
||
DISABLE_PSI_STATEMENT |
排除性能模式語句檢測 | OFF |
||
DISABLE_PSI_STATEMENT_DIGEST |
排除性能模式語句_摘要工具 | OFF |
||
DISABLE_PSI_TABLE |
排除性能模式表檢測 | 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 |
是否為加載數據啟用本地 | 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 |
自述文件目錄 | PREFIX |
||
INSTALL_INCLUDEDIR |
頭文件目錄 | PREFIX/include |
||
INSTALL_INFODIR |
信息文件目錄 | PREFIX/docs |
||
INSTALL_LAYOUT |
選擇預定義的安裝布局 | STANDALONE |
||
INSTALL_LIBDIR |
庫文件目錄 | PREFIX/lib |
||
INSTALL_MANDIR |
手冊頁目錄 | PREFIX/man |
||
INSTALL_MYSQLKEYRINGDIR |
keyring_file插件數據文件的目錄 | platform specific |
||
INSTALL_MYSQLSHAREDIR |
共享數據目錄 | PREFIX/share |
||
INSTALL_MYSQLTESTDIR |
mysql-test目錄 | PREFIX/mysql-test |
||
INSTALL_PKGCONFIGDIR |
mysqlclient.pc pkg-config文件的目錄 | INSTALL_LIBDIR/pkgconfig |
||
INSTALL_PLUGINDIR |
插件目錄 | PREFIX/lib/plugin |
||
INSTALL_SBINDIR |
服務器可執行目錄 | PREFIX/bin |
||
INSTALL_SECURE_FILE_PRIVDIR |
secure_file_priv默認值 | platform specific |
||
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 / OS X項目名稱 | MySQL |
||
MYSQL_TCP_PORT |
TCP / IP端口號 | 3306 |
||
MYSQL_UNIX_ADDR |
Unix套接字文件 | /tmp/mysql.sock |
||
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-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路由器 | ON |
8.0.16 | |
WITH_SSL |
SSL支持類型 | system |
||
WITH_SYSTEMD |
啟用系統支持文件的安裝 | OFF |
||
WITH_SYSTEM_LIBS |
設置未明確設置的庫選項的系統值 | OFF |
||
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靜態編譯到服務器中 |
-
該選項使用與Oracle相同的構建選項來配置源分發,Oracle使用這些生成選項來為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軟件包操作是生成多個安裝軟件包文件還是單個文件。如果禁用,該操作將產生多個安裝包文件,如果您只想安裝完整MySQL安裝的一部分,則可能很有用。如果啟用,它將生成一個用於安裝所有內容的文件。
-
定義是否強制進行源內構建。推薦使用源外版本,因為它們允許來自同一源的多個版本,並且可以通過刪除版本目錄來快速執行清理。要強制在代碼構建,調用CMake的使用
-DFORCE_INSOURCE_BUILD=ON
。
該CMAKE_INSTALL_PREFIX
選項指示基本安裝目錄。具有指示組件位置的形式名稱的其他選項 是相對於前綴解釋的,並且它們的值是相對路徑名。它們的值不應包含前綴。 INSTALL_
xxx
-
-DCMAKE_INSTALL_PREFIX=
dir_name
安裝基礎目錄。
可以使用
--basedir
選項在服務器啟動時設置此值 。 -
在哪里安裝用戶程序。
-
在哪里安裝文檔。
-
-DINSTALL_DOCREADMEDIR=
dir_name
在哪里安裝
README
文件。 -
在哪里安裝頭文件。
-
在哪里安裝信息文件。
-
選擇預定義的安裝布局:
-
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.12節“密鑰環系統變量”中對這些變量的描述 。 -
-
在哪里安裝庫文件。
-
在哪里安裝手冊頁。
-
-DINSTALL_MYSQLKEYRINGDIR=
dir_path
用作
keyring_file
插件數據文件位置的默認目錄 。默認值是特定於平台的,並取決於CMake選項的值。請參見第5.1.8節“服務器系統變量”中對系統變量的描述 。INSTALL_LAYOUT
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/pkgconfig
INSTALL_LIBDIR
/mysql
-
插件目錄的位置。
可以使用
--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
沒有幫助的情況下可能找不到 文件。為了引導加載程序,RPATH
將值 $ ORIGIN /../$ INSTALL_PRIV_LIBDIR添加到mysqld和mysqlxtest中。這在大多數情況下都有效,但是在使用資源組功能時,mysqld是 setsuid,然后加載程序會忽略RPATH
其中包含$ORIGIN
。為了克服這個問題,在mysqld的DEB和RPM變體中設置了目錄的顯式完整路徑,因為已知目標位置。對於tarball安裝,需要使用patchelf之類的工具修補mysqld 。 -
在哪里安裝mysqld服務器。
-
-DINSTALL_SECURE_FILE_PRIVDIR=
dir_name
secure_file_priv
系統變量 的默認值 。默認值是特定於平台的,並取決於CMake選項的值 。請參見第5.1.8節“服務器系統變量”中對系統變量的描述 。INSTALL_LAYOUT
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的位置包括目錄,並且可以在配置連接器/ ODBC時使用。
-
ODBC庫目錄的位置,可以在配置連接器/ ODBC時使用。
-
默認
my.cnf
選項文件目錄。無法在服務器啟動時設置此位置,但是可以使用 選項使用給定的選項文件啟動服務器 ,其中該文件的完整路徑名是。
--defaults-file=
file_name
file_name
-
當MySQL由systemd管理時,在其中創建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
如果沒有Performance Schema支持,則無法進行編譯。如果希望不使用特定類型的工具進行編譯,則可以使用以下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
例如,要在沒有互斥檢測的情況下進行編譯,請使用-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.23中添加了此選項。
-
-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
(包括)。 -
是否排除性能模式文件檢測。默認值為
OFF
(包括)。 -
是否排除性能模式空閑檢測。默認值為
OFF
(包括)。 -
是否排除性能模式內存檢測。默認值為
OFF
(包括)。 -
是否排除性能模式元數據檢測。默認值為
OFF
(包括)。 -
是否排除性能架構互斥檢測。默認值為
OFF
(包括)。 -
是否排除性能模式rwlock工具。默認值為
OFF
(包括)。 -
是否排除性能架構套接字工具。默認值為
OFF
(包括)。 -
是否排除性能模式存儲程序工具。默認值為
OFF
(包括)。 -
是否排除性能模式階段檢測。默認值為
OFF
(包括)。 -
是否排除性能模式語句工具。默認值為
OFF
(包括)。 -
-DDISABLE_PSI_STATEMENT_DIGEST=
bool
是否排除性能模式statement_digest工具。默認值為
OFF
(包括)。 -
是否排除性能模式表工具。默認值為
OFF
(包括)。 -
是否禁用構建構建共享庫並編譯與位置相關的代碼。默認值為
OFF
(編譯與位置無關的代碼)。此選項未使用,並已在MySQL 8.0.18中刪除。
-
排除性能模式准備好的語句實例檢測。默認值為
OFF
(包括)。 -
排除性能架構線程檢測。默認值為
OFF
(包括)。僅在構建時不使用任何工具時才禁用線程,因為其他工具對線程有依賴性。
-
-DDISABLE_PSI_TRANSACTION=
bool
排除性能架構事務檢測。默認值為
OFF
(包括)。 -
排除性能模式數據鎖檢測。默認值為
OFF
(包括)。 -
排除性能模式服務器錯誤檢測。默認值為
OFF
(包括)。 -
是否下載Boost庫。默認值為
OFF
。請參閱該
WITH_BOOST
選項,以獲取有關使用Boost的其他討論。 -
-DDOWNLOAD_BOOST_TIMEOUT=
seconds
下載Boost庫的超時時間(以秒為單位)。默認值為600秒。
請參閱該
WITH_BOOST
選項,以獲取有關使用Boost的其他討論。 -
是否下載可選文件。例如,啟用此選項后,CMake將下載測試套件用於運行單元測試的Google Test發行版,或構建GCS Java包裝程序所需的Ant和JUnit。
-
-DENABLE_EXPERIMENTAL_SYSVARS=
bool
是否啟用實驗
InnoDB
系統變量。實驗性系統變量是供那些從事MySQL開發的人員使用的,只能在開發或測試環境中使用,並且在將來的MySQL版本中可能會被刪除,恕不另行通知。有關實驗系統變量的信息,請參見/storage/innobase/handler/ha_innodb.cc
MySQL源代碼樹。可以通過搜索“ PLUGIN_VAR_EXPERIMENTAL ”來識別實驗系統變量 。 -
是否包括gcov支持(僅Linux)。
-
是否啟用
gprof
(僅優化的Linux構建)。 -
此選項控制
LOCAL
MySQL客戶端庫的內置默認 功能。因此,沒有明確安排的客戶端將LOCAL
根據ENABLED_LOCAL_INFILE
MySQL構建時指定的設置禁用或啟用功能 。默認情況下,MySQL二進制發行版中的客戶端庫在
ENABLED_LOCAL_INFILE
禁用的情況下進行編譯 。如果從源代碼編譯MySQL,請ENABLED_LOCAL_INFILE
根據未進行顯式安排的客戶端應LOCAL
分別禁用還是啟用功能,將其配置為禁用或啟用。ENABLED_LOCAL_INFILE
控制客戶端LOCAL
功能的默認設置。對於服務器,local_infile
系統變量控制服務器端LOCAL
功能。要明確原因服務器拒絕或允許LOAD DATA LOCAL
語句(不管有客戶程序和庫在構建時或運行時配置),啟動mysqld的與local_infile
分別禁用或啟用。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。
cmake/fprofile.cmake
有關使用FPROFILE_GENERATE
和的 信息,請參見MySQL源代碼分發中的文件FPROFILE_USE
。這些選項已在GCC 8和9中進行了測試。該選項是在MySQL 8.0.19中添加的。
-
是否使用配置文件引導的優化(PGO)數據。該選項可用於在GCC上試用PGO。
cmake/fprofile.cmake
有關使用FPROFILE_GENERATE
和的 信息,請參見MySQL源代碼分發中的文件FPROFILE_USE
。這些選項已在GCC 8和9中進行了測試。啟用
FPROFILE_USE
也會啟用WITH_LTO
。該選項是在MySQL 8.0.19中添加的。
-
如果
-DBUILD_CONFIG=mysql_release
在Linux上提供了該 選項,則libaio
默認情況下必須鏈接該庫。如果您沒有libaio
或不想安裝它,可以通過指定取消對它的檢查-DIGNORE_AIO_CHECK=1
。 -
每個表的最大索引數。默認值為64。最大值為255。小於64的值將被忽略,並使用默認值64。
-
是否啟用特定於MySQL維護人員的開發環境。如果啟用,此選項將導致編譯器警告變為錯誤。
-
所使用的互斥鎖類型
InnoDB
。選項包括:-
event
:使用事件互斥鎖。這是默認值和原始InnoDB
互斥量實現。 -
sys
注意:在UNIX系統上使用POSIX互斥鎖。CRITICAL_SECTION
如果可用,請在Windows上使用onject。 -
futex
注意:使用Linux futexes代替條件變量來安排等待線程。
-
-
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內部:追蹤優化器。
-
對於Linux系統上的構建,此選項控制是否要特別注意創建與構建位置和時間無關的構建結果。
該選項是在MySQL 8.0.11中添加的。從MySQL 8.0.12開始,它默認
ON
用於RelWithDebInfo
構建。 -
CMake使構建過程與GNU gold鏈接程序鏈接(如果可用且未明確禁用)。要禁用此鏈接器,請指定
-DUSE_LD_GOLD=OFF
選項。 -
CMake使構建過程與 Clang的 llvm lld鏈接程序鏈接(如果可用且未明確禁用)。要禁用此鏈接器,請指定
-DUSE_LD_LLD=OFF
選項。該選項是在MySQL 8.0.16中添加的。
-
是否在Windows上禁用功能內聯。默認為關閉(啟用內聯)。
-
將路徑設置為構建GCS Java包裝器時所需的Ant。以與現有
WITH_BOOST
CMake選項類似的方式工作 。設置WITH_ANT
為Ant tarball或已經解壓縮的歸檔文件保存目錄的路徑。如果WITH_ANT
未設置或使用特殊值設置system
,則構建會假定中存在 二進制螞蟻$PATH
。 -
是否為支持它的編譯器啟用AddressSanitizer。默認為關閉。
-
是否啟用
-fsanitize-address-use-after-scope
用於范圍后使用檢測的AddressSanitizer Clang標志。默認為關閉。要使用此選項,-DWITH_ASAN
還必須啟用。 -
-DWITH_AUTHENTICATION_LDAP=
bool
如果無法構建LDAP認證插件,是否報告錯誤:
-
如果禁用此選項(默認設置),則在找到所需的頭文件和庫的情況下將構建LDAP插件。如果不是,則 CMake會顯示一條注釋。
-
如果啟用此選項,則找不到所需的頭文件和庫會導致 CMake產生錯誤,從而阻止構建服務器。
-
-
-DWITH_AUTHENTICATION_PAM=
bool
是否為包含此插件的源樹構建PAM身份驗證插件。(請參見 第6.4.1.5節“ PAM可插入身份驗證”。)如果指定了該選項並且無法編譯插件,則構建將失敗。
-
Amazon Web Services軟件開發套件的位置。
-
Boost庫是構建MySQL所必需的。這些 CMake選項可控制庫源位置以及是否自動下載:
-
-DWITH_BOOST=
指定Boost庫目錄位置。也可以通過設置path_name
BOOST_ROOT
或WITH_BOOST
環境變量來指定Boost位置。-DWITH_BOOST=system
也被允許,並指示在標准位置的編譯主機上安裝了正確版本的Boost。在這種情況下,將使用已安裝的Boost版本,而不是MySQL源代碼發行版中包含的任何版本。 -
-DDOWNLOAD_BOOST=
指定如果指定位置不存在Boost源,是否下載。默認值為bool
OFF
。 -
-DDOWNLOAD_BOOST_TIMEOUT=
下載Boost庫的超時時間(以秒為單位)。默認值為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選項可以使您成功構建。
使用上述允許Boost下載到指定位置的設置,當所需的Boost版本更改時,您需要刪除該
bld
文件夾,重新創建該文件夾,然后再次執行cmake步驟。否則,可能不會下載新的Boost版本,並且編譯可能會失敗。 -
-
-DWITH_CLIENT_PROTOCOL_TRACING=
bool
是否將客戶端協議跟蹤框架構建到客戶端庫中。默認情況下,啟用此選項。
有關編寫協議跟蹤客戶端插件的信息,請參見第29.2.4.11節“編寫協議跟蹤插件”。
另請參閱
WITH_TEST_TRACE_PLUGIN
選項。 -
curl庫 的位置。
curl_type
可以是system
(使用系統 卷曲庫)或路徑名 卷曲庫。 -
是否包括調試支持。
通過調試支持配置MySQL,可以
--debug="d,parser_debug"
在啟動服務器時使用該選項。這將導致用於處理SQL語句的Bison解析器將解析器跟蹤轉儲到服務器的標准錯誤輸出。通常,此輸出將寫入錯誤日志。InnoDB
存儲引擎的 同步調試檢查在下定義,UNIV_DEBUG
在使用WITH_DEBUG
選項編譯調試支持時可用 。編譯調試支持后,innodb_sync_debug
可使用配置選項啟用或禁用InnoDB
同步調試檢查。啟用
WITH_DEBUG
還啟用調試同步。此工具用於測試和調試。編譯時,默認情況下在運行時禁用“調試同步”。要啟用它,請使用 選項啟動 mysqld,其中超時值大於0。(默認值為0,禁用調試同步。)成為各個同步點的默認超時。--debug-sync-timeout=
N
N
N
InnoDB
使用WITH_DEBUG
選項編譯調試支持時,可以使用存儲引擎的 同步調試檢查。有關“調試同步”工具以及如何使用同步點的說明,請參見《 MySQL內部知識:測試同步》。
-
-DWITH_DEFAULT_FEATURE_SET=
bool
是否使用中的標志
cmake/build_configurations/feature_set.cmake
。此選項已在MySQL 8.0.22中刪除。 -
使用哪個
libedit
/editline
庫。允許的值為bundled
(默認值)和system
。 -
-DWITH_ICU={
icu_type
|path_name
}MySQL使用Unicode國際組件(ICU)支持正則表達式操作。該
WITH_ICU
選項指示要包括的ICU支持的類型或要使用的ICU安裝的路徑名。-
icu_type
可以是以下值之一:-
bundled
:使用與發行版捆綁在一起的ICU庫。這是默認設置,並且是Windows唯一受支持的選項。 -
system
:使用系統ICU庫。
-
-
path_name
是要使用的ICU安裝的路徑名。這可能比使用icu_type
值更好,system
因為它可以防止CMake檢測和使用系統上安裝的較舊或錯誤的ICU版本。(另一種允許執行相同操作的方法是將設置WITH_ICU
為system
,並將CMAKE_PREFIX_PATH
選項設置 為path_name
。)
-
-
-DWITH_INNODB_EXTRA_DEBUG=
bool
是否包括額外的InnoDB調試支持。
啟用
WITH_INNODB_EXTRA_DEBUG
將啟用額外的InnoDB調試檢查。此選項僅在啟用后WITH_DEBUG
才能啟用。 -
googlemock發行版的路徑,用於基於Google Test的單元測試。選項值是分發Zip文件的路徑。或者,將
WITH_GMOCK
環境變量設置為路徑名。也可以使用-DENABLE_DOWNLOADS=1
, CMake將從GitHub下載發行版。如果您構建的MySQL沒有基於Google Test的單元測試(通過配置wihout
WITH_GMOCK
),則 CMake會顯示一條消息,指示如何下載它。 -
是否生成memcached共享庫(
libmemcached.so
和innodb_engine.so
)。 -
是否與鏈接
-ljemalloc
。如果啟用,內置malloc()
,calloc()
,realloc()
,和free()
程序將被禁用。默認值為OFF
。該選項是在MySQL 8.0.16中添加的。
-
是否構建
keyring_file
插件隨附的測試程序 。默認值為OFF
。測試文件的源代碼位於plugin/keyring/keyring-test
目錄中。 -
libevent
使用 哪個庫。允許的值為bundled
(默認值)system
,和yes
。如果指定system
或yes
,libevent
則使用系統 庫(如果存在)。如果找不到系統庫,libevent
則使用捆綁的 庫。該libevent
庫是InnoDB
memcached 必需的 。 -
是否包括
libwrap
(TCP包裝器)支持。 -
是否啟用LOCK_ORDER工具。默認情況下,此選項為禁用狀態,服務器版本不包含任何工具。如果啟用了工具,則可以使用LOCK_ORDER工具,如第29.5.3節“ LOCK_ORDER工具”所述,可以使用LOCK_ORDER工具。
注意WITH_LOCK_ORDER
啟用 該選項后,MySQL構建需要 flex程序。該選項是在MySQL 8.0.17中添加的。
-
是否運行不使用AddressSanitizer的LeakSanitizer。默認值為
OFF
。該選項是在MySQL 8.0.16中添加的。
-
如果編譯器支持,則是否啟用鏈接時間優化器。
OFF
除非FPROFILE_USE
啟用,否則 默認為。該選項是在MySQL 8.0.13中添加的。
-
該
WITH_LZ4
指示的源zlib
支持:-
bundled
:使用lz4
與發行版捆綁在一起的 庫。這是默認值。 -
system
:使用系統lz4
庫。如果WITH_LZ4
將設置為該值,則不會構建lz4_decompress實用程序。在這種情況下,可以改用system lz4命令。
-
-
是否為支持它的編譯器啟用MemorySanitizer。默認為關閉。
為了使此選項生效(如果啟用),還必須在啟用該選項的情況下編譯鏈接到MySQL的所有庫。
-
-DWITH_MECAB={disabled|system|
path_name
}使用此選項編譯MeCab解析器。如果已將MeCab安裝到其默認安裝目錄,請設置
-DWITH_MECAB=system
。該system
選項適用於使用本機軟件包管理實用程序從源或二進制文件執行的MeCab安裝。如果已將MeCab安裝到自定義安裝目錄,請指定MeCab安裝的路徑。例如,-DWITH_MECAB=/opt/mecab
。如果該system
選項不起作用,則在所有情況下都應指定MeCab安裝路徑。有關相關信息,請參見 第12.9.9節“ MeCab全文分析器插件”。
-
是否啟用Visual Studio CRT內存泄漏跟蹤。默認值為
OFF
。 -
是否使用X插件支持進行構建。默認
ON
。請參見第20章,將MySQL用作文檔存儲。 -
明確設置NUMA內存分配策略。 CMake
WITH_NUMA
根據當前平台是否NUMA
支持設置默認 值。對於不支持NUMA的平台, CMake的行為如下:-
如果沒有NUMA選項(正常情況), CMake將繼續正常運行,僅產生以下警告:缺少NUMA庫或所需的版本不可用
-
使用
-DWITH_NUMA=ON
, CMake會因以下錯誤而中止:缺少NUMA庫或所需的版本不可用
-
-
使用哪個協議緩沖區包。
protobuf_type
可以是以下值之一:-
bundled
:使用與發行版捆綁在一起的軟件包。這是默認值。(可選)用於INSTALL_PRIV_LIBDIR
修改動態Protobuf庫目錄。 -
system
:使用系統上安裝的軟件包。
其他值將被忽略,后退為
bundled
。 -
-
是否構建快速開發周期的插件。啟用后,將
rapid
在構建樹中創建一個包含這些插件的目錄。禁用后,不會rapid
在構建樹中創建任何目錄。ON
除非rapid
目錄從源樹中刪除,否則默認值為, 在這種情況下默認值為OFF
。 -
-DWITH_RAPIDJSON=
rapidjson_type
要包括的RapidJSON庫支持的類型。
rapidjson_type
可以是以下值之一:-
bundled
:使用與發行版捆綁在一起的RapidJSON庫。這是默認值。 -
system
:使用系統RapidJSON庫。需要版本1.1.0或更高版本。
該選項是在MySQL 8.0.13中添加的。
-
-
要包括的LZMA庫支持的類型。
lzma_type
可以是以下值之一:-
bundled
:使用與發行版捆綁在一起的LZMA庫。這是默認值。 -
system
:使用系統LZMA庫。
此選項已在MySQL 8.0.16中刪除。
-
-
要包括的RE2庫支持的類型。
re2_type
可以是以下值之一:-
bundled
:使用與發行版捆綁在一起的RE2庫。這是默認值。 -
system
:使用系統RE2庫。
從MySQL 8.0.18開始,MySQL不再使用RE2庫,並且刪除了此選項。
-
-
是否建立MySQL路由器。默認值為
ON
。該選項是在MySQL 8.0.16中添加的。
-
-DWITH_SSL={
|ssl_type
path_name
}為了支持加密連接,用於生成隨機數的熵以及其他與加密相關的操作,必須使用SSL庫來構建MySQL。此選項指定要使用的SSL庫。
-
ssl_type
可以是以下值之一:-
system
:使用系統OpenSSL庫。這是默認值。在macOS和Windows上,使用可以
system
配置MySQL以進行構建,就像調用CMake時path_name
指向指向手動安裝的OpenSSL庫一樣。這是因為它們沒有系統SSL庫。在macOS上, brew install openssl安裝到/usr/local/opt/openssl
並system
會找到它。在Windows上,它檢查 %ProgramFiles%/ OpenSSL, %ProgramFiles%/ OpenSSL-Win32, %ProgramFiles%/ OpenSSL-Win64和 C:/ OpenSSL, C:/ OpenSSL-Win32和 C:/ OpenSSL-Win64。 -
yes
:這是的同義詞system
。
-
-
path_name
是要使用的OpenSSL安裝的路徑名。最好使用ssl_type
值of,system
因為它可以防止CMake檢測和使用系統上安裝的較舊或錯誤的OpenSSL版本。(另一種允許執行相同操作的方法是將設置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,所以必須以其他方式指定此類選項。 -
此選項充當“ 保護傘 ”選項來設置
system
的以下任一值CMake的選項未明確設置:WITH_CURL
,WITH_EDITLINE
,WITH_ICU
,WITH_LIBEVENT
,WITH_LZ4
,WITH_LZMA
,WITH_PROTOBUF
,WITH_RE2
,WITH_SSL
,WITH_ZLIB
,WITH_ZSTD
。 -
是否構建測試協議跟蹤客戶端插件(請參見 第29.2.4.11.1節“使用測試協議跟蹤插件”)。默認情況下,此選項處於禁用狀態。除非啟用該選項,否則啟用此選項無效
WITH_CLIENT_PROTOCOL_TRACING
。如果MySQL同時配置了這兩個選項,則將使用libmysqlclient
內置的測試協議跟蹤插件來構建客戶端庫,並且所有標准MySQL客戶端都將加載該插件。但是,即使啟用了測試插件,默認情況下它也不起作用。使用環境變量可以控制插件。請參見 第29.2.4.11.1節“使用測試協議跟蹤插件”。注意不要不啟用
WITH_TEST_TRACE_PLUGIN
,如果你想使用自己的協議跟蹤的插件,因為只有一個這樣的插件可以在同一時間被加載並出現錯誤嘗試加載第二個選項。如果已經構建了啟用了測試協議跟蹤插件的MySQL以查看其工作原理,則必須在沒有MySQL的情況下重新構建MySQL,然后才能使用自己的插件。有關編寫跟蹤插件的信息,請參見 第29.2.4.11節“編寫協議跟蹤插件”。
-
是否為支持它的編譯器啟用ThreadSanitizer。默認為關閉。
-
是否為支持它的編譯器啟用“未定義行為清理器”。默認為關閉。
-
如果啟用,請使用單元測試編譯MySQL。除非未編譯服務器,否則默認值為ON。
-
為連接器/ ODBC啟用unixODBC支持。
-
是否在Valgrind頭文件中進行編譯,這會將Valgrind API暴露給MySQL代碼。默認值為
OFF
。要生成可識別Valgrind的調試版本,
-DWITH_VALGRIND=1
通常與結合使用-DWITH_DEBUG=1
。請參閱 構建調試配置。 -
某些功能要求服務器使用壓縮庫支持構建,例如
COMPRESS()
和UNCOMPRESS()
功能,以及客戶端/服務器協議的壓縮。該WITH_ZLIB
指示的源zlib
支持:-
bundled
:使用zlib
與發行版捆綁在一起的 庫。這是默認值。 -
system
:使用系統zlib
庫。如果WITH_ZLIB
將此值設置為,則不會構建zlib_decompress實用程序。在這種情況下,可以改為使用系統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
。
例如,要在64位Linux機器上創建32位發行版,請執行以下操作:
mkdir bld
cd bld
cmake .. -DCMAKE_C_FLAGS=-m32 \ -DCMAKE_CXX_FLAGS=-m32 \ -DCMAKE_BUILD_TYPE=RelWithDebInfo
如果設置影響優化的標志(),則必須設置 和/或 選項,其中對應於該值。要為默認的構建類型()指定其他優化,請設置 和 選項。例如,要在具有調試符號的Linux上進行編譯,請執行以下操作: -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
-O3
cmake .. -DCMAKE_C_FLAGS_RELWITHDEBINFO="-O3 -g" \ -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O3 -g"
在構建具有NDB Cluster支持的MySQL 8.0源時,可以使用以下選項。
-
使用安裝在由指示的系統目錄中的memcached(1.6版或更高版本)執行構建
dir_name
。此安裝中用於構建的文件包括memcached二進制文件,頭文件和庫,以及memcached_utilities
庫和頭文件engine_testapp.h
。ndbmemcache
使用捆綁的內存緩存源(WITH_BUNDLED_MEMCACHED
選件)進行 構建時,必須將此選項保持未設置狀態 。換句話說,默認情況下使用捆綁的來源。雖然從外部源編譯內存緩存時可以使用其他CMake選項(例如,用於SASL授權和提供
dtrace
支持),但當前未為與NDB Cluster捆綁在一起的內存緩存源啟用這些選項。 -
-DWITH_BUNDLED_LIBEVENT={ON|OFF}
libevent
在ndbmemcached
支持的情況下構建NDB群集時, 請使用NDB群集源中包含的資源 。默認啟用。OFF
導致libevent
改為使用系統 。 -
-DWITH_BUNDLED_MEMCACHED={ON|OFF}
構建NDB群集源樹中包含的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中啟用二進制日志記錄 。默認為開。
-
啟用構建NDB群集二進制文件的調試版本。默認關閉。
-
啟用通過Java支持(包括)構建NDB Cluster
ClusterJ
。默認情況下,此選項為ON。如果您不希望在Java支持下編譯NDB Cluster,則必須通過指定
-DWITH_NDB_JAVA=OFF
在運行CMake時 顯式禁用它 。否則,如果找不到Java,則構建的配置將失敗。 -
使NDB群集管理服務器(ndb_mgmd)
port
缺省情況下使用此 服務器。如果未設置此選項,則默認情況下,結果管理服務器將嘗試使用端口1186。 -
如果啟用,請包括一組NDB API測試程序。默認為關閉。
-
-DWITH_PLUGIN_NDBCLUSTER={ON|OFF}
的別名
WITH_NDBCLUSTER
。