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_LAYOUTkeyring_file_data -
-DINSTALL_MYSQLSHAREDIR=dir_name在何處安裝共享數據文件。
-
-DINSTALL_MYSQLTESTDIR=dir_name安裝
mysql-test目錄的位置。要禁止安裝此目錄,請將選項顯式設置為空值(-DINSTALL_MYSQLTESTDIR=)。 -
-DINSTALL_PKGCONFIGDIR=dir_namepkg-config
mysqlclient.pc使用的 安裝文件 的目錄 。默認值為 ,除非 以結尾 ,在這種情況下,該值將被首先刪除。INSTALL_LIBDIR/pkgconfigINSTALL_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_namesecure_file_priv系統變量 的默認值 。默認值是特定於平台的,並取決於CMake選項的值 。請參見第5.1.8節“服務器系統變量”中對系統變量的描述 。INSTALL_LAYOUTsecure_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_namefile_name -
當MySQL由systemd管理時,在其中創建PID文件的目錄的名稱。默認值為
/var/run/mysqld; 這可能會根據INSTALL_LAYOUT值隱式更改 。除非
WITH_SYSTEMD啟用此選項,否則將忽略 它。 -
MySQL由systemd管理時使用的MySQL服務的名稱。默認值為
mysqld; 這可能會根據INSTALL_LAYOUT值隱式更改 。除非
WITH_SYSTEMD啟用此選項,否則將忽略 它。 -
tmpdir系統變量 使用的默認位置 。如果未指定,則默認值為P_tmpdirin<stdio.h>。
存儲引擎是作為插件構建的。您可以將插件構建為靜態模塊(編譯到服務器中)或動態模塊(構建為動態庫,必須使用該INSTALL PLUGIN 語句或--plugin-load 選項安裝到服務器中,然后才能使用該插件)。有些插件可能不支持靜態或動態構建。
的InnoDB, MyISAM, MERGE, MEMORY,和 CSV發動機是強制性的(總是編譯到服務器)和無需顯式安裝。
要將存儲引擎靜態編譯到服務器中,請使用 。一些可允許的值 ,, ,,和 或 (支持)。例子: -DWITH_engine_STORAGE_ENGINE=1engineARCHIVEBLACKHOLEEXAMPLEFEDERATEDNDBNDBCLUSTERNDB
-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.ccMySQL源代碼樹。可以通過搜索“ PLUGIN_VAR_EXPERIMENTAL ”來識別實驗系統變量 。 -
是否包括gcov支持(僅Linux)。
-
是否啟用
gprof(僅優化的Linux構建)。 -
此選項控制
LOCALMySQL客戶端庫的內置默認 功能。因此,沒有明確安排的客戶端將LOCAL根據ENABLED_LOCAL_INFILEMySQL構建時指定的設置禁用或啟用功能 。默認情況下,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_BOOSTCMake選項類似的方式工作 。設置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_nameBOOST_ROOT或WITH_BOOST環境變量來指定Boost位置。-DWITH_BOOST=system也被允許,並指示在標准位置的編譯主機上安裝了正確版本的Boost。在這種情況下,將使用已安裝的Boost版本,而不是MySQL源代碼發行版中包含的任何版本。 -
-DDOWNLOAD_BOOST=指定如果指定位置不存在Boost源,是否下載。默認值為boolOFF。 -
-DDOWNLOAD_BOOST_TIMEOUT=下載Boost庫的超時時間(以秒為單位)。默認值為600秒。seconds
例如,如果您通常構建MySQL並將對象輸出放置在
bldMySQL源樹的子目錄中,則可以使用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=NNNInnoDB使用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庫是InnoDBmemcached 必需的 。 -
是否包括
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_typepath_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_FLAGSCMake選項。
提供自己的編譯器標志時,您可能還需要指定CMAKE_BUILD_TYPE。
例如,要在64位Linux機器上創建32位發行版,請執行以下操作:
mkdir bld
cd bld
cmake .. -DCMAKE_C_FLAGS=-m32 \ -DCMAKE_CXX_FLAGS=-m32 \ -DCMAKE_BUILD_TYPE=RelWithDebInfo
如果設置影響優化的標志(),則必須設置 和/或 選項,其中對應於該值。要為默認的構建類型()指定其他優化,請設置 和 選項。例如,要在具有調試符號的Linux上進行編譯,請執行以下操作: -OnumberCMAKE_C_FLAGS_build_typeCMAKE_CXX_FLAGS_build_typebuild_typeCMAKE_BUILD_TYPERelWithDebInfoCMAKE_C_FLAGS_RELWITHDEBINFOCMAKE_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。
