MySQL8的编译选项

布尔(bool)选项取值为1或ON表示启用该选项,0或OFF表示不启用该选项

常规选项:

-DBUILD_CONFIG=mysql_release
此选项使用Oracle使用的相同构建选项配置源分发,以生成官方MySQL版本的二进制分发。

-DBUNDLE_RUNTIME_LIBRARIES=bool
是否将运行时库与Windows的服务器MSI和Zip包捆绑在一起。

-DCMAKE_BUILD_TYPE=type
要生成的构建类型:
    RelWithDebInfo:启用优化并生成调试信息。这是默认的MySQL构建类型。
    Debug:禁用优化并生成调试信息。如果WITH_DEBUG启用该选项,也会使用此构建类型。也就是说,-DWITH_DEBUG=1具有相同的效果 -DCMAKE_BUILD_TYPE=Debug。

安装布局选项:

-DCPACK_MONOLITHIC_INSTALL=bool
此选项会影响make包操作是生成多个安装包文件还是单个文件。如果禁用,该操作将生成多个安装包文件,如果您只想安装完整MySQL安装的子集,这可能很有用。如果启用,它将生成一个用于安装所有内容的文件。
该CMAKE_INSTALL_PREFIX选项表示基本安装目录。具有指示组件位置的表单名称的其他选项 相对于前缀进行解释,其值是相对路径名。它们的值不应包含前缀。 INSTALL_xxx

-DCMAKE_INSTALL_PREFIX=dir_name
安装基目录。可以使用该--basedir选项在服务器启动时设置此值 。

-DINSTALL_BINDIR=dir_name
在哪里安装用户程序。

-DINSTALL_DOCDIR=dir_name
在哪里安装文档。

-DINSTALL_DOCREADMEDIR=dir_name
在哪里安装README文件。

-DINSTALL_INCLUDEDIR=dir_name
在哪里安装头文件。

-DINSTALL_INFODIR=dir_name
在哪里安装Info文件。

-DINSTALL_LAYOUT=name
选择预定义的安装布局:
    STANDALONE:与用于.tar.gz和.zip 包的布局相同 。这是默认值。
    RPM:布局类似于RPM包。
    SVR4:Solaris包布局。
    DEB:DEB包布局(实验)。
您可以选择预定义布局,但可以通过指定其他选项来修改单个组件安装位置。例如:
shell> cmake . -DINSTALL_LAYOUT=SVR4 -DMYSQL_DATADIR=/var/mysql/data
的INSTALL_LAYOUT值确定的默认值 secure_file_priv, keyring_encrypted_file_data和keyring_file_data系统变量。

-DINSTALL_LIBDIR=dir_name
在哪里安装库文件。

-DINSTALL_MANDIR=dir_name
在哪里安装手册页。

-DINSTALL_MYSQLKEYRINGDIR=dir_path
用作keyring_file插件数据文件位置的默认目录 。默认值是特定于平台的,取决于CMake选项的值。 INSTALL_LAYOUT keyring_file_data

-DINSTALL_MYSQLSHAREDIR=dir_name
在哪里安装共享数据文件。

-DINSTALL_MYSQLTESTDIR=dir_name
在哪里安装mysql-test目录。要禁止安装此目录,请将该选项显式设置为空值(-DINSTALL_MYSQLTESTDIR=)。

-DINSTALL_PKGCONFIGDIR=dir_name
安装mysqlclient.pc文件以供pkg-config使用的目录。INSTALL_LIBDIR/pkgconfig除非INSTALL_LIBDIR结束 ,否则 默认值为 /mysql,在这种情况下首先删除。

-DINSTALL_PLUGINDIR=dir_name
插件目录的位置。可以使用该--plugin_dir选项在服务器启动时设置此值 。

-DINSTALL_SBINDIR=dir_name
在哪里安装mysqld服务器。

-DINSTALL_SECURE_FILE_PRIVDIR=dir_name
secure_file_priv系统变量 的默认值 。默认值是特定于平台的,取决于CMake选项的值  。 INSTALL_LAYOUT secure_file_priv

-DINSTALL_SHAREDIR=dir_name
在哪里安装aclocal/mysql.m4。

-DINSTALL_STATIC_LIBRARIES=bool
是否安装静态库。默认是 ON。如果设置为OFF,则不安装这些库:libmysqlclient.a,libmysqlservices.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_namefile_name

-DSYSTEMD_PID_DIR=dir_name
当MySQL由systemd管理时,在其中创建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>。

存储引擎选项:


存储引擎构建为插件。您可以将插件构建为静态模块(编译到服务器中)或动态模块(构建为动态库,必须在使用之前使用INSTALLPLUGIN语句或--plugin-load选项安装到服务器中)。某些插件可能不支持静态或动态构建。InnoDB,MyISAM,MERGE,MEMORY,和CSV引擎是强制性的(总是编译到服务器)和无需显式安装。

要将存储引擎静态编译到服务器中请使用-DWITH_engine_STORAGE_ENGINE=1。
可使用的引擎有ARCHIVE,BLACKHOLE,EXAMPLE,和FEDERATED;例如:
    -DWITH_ARCHIVE_STORAGE_ENGINE=1
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1

功能选项:

-DCOMPILATION_COMMENT=string
关于编译环境的描述性评论。

-DDEFAULT_CHARSET=charset_name
服务器字符集。默认情况下,MySQL使用utf8mb4字符集。
如果使用其它允许的字符集在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
是否排除Performance Schema条件检测。默认值为OFF (include)。

-DDISABLE_PSI_FILE=bool
是否排除Performance Schema文件检测。默认值为OFF (include)。

-DDISABLE_PSI_IDLE=bool
是否排除Performance Schema空闲检测。默认值为OFF (include)。

-DDISABLE_PSI_MEMORY=bool
是否排除Performance Schema内存检测。默认值为OFF (include)。

-DDISABLE_PSI_METADATA=bool
是否排除Performance Schema元数据检测。默认值为OFF (include)。

-DDISABLE_PSI_MUTEX=bool
是否排除Performance Schema互斥锁检测。默认值为OFF (include)。

-DDISABLE_PSI_RWLOCK=bool
是否排除性能模式rwlock检测。默认值为OFF (include)。

-DDISABLE_PSI_SOCKET=bool
是否排除Performance Schema套接字检测。默认值为OFF (include)。

-DDISABLE_PSI_SP=bool
是否排除Performance Schema存储的程序检测。默认值为OFF (include)。

-DDISABLE_PSI_STAGE=bool
是否排除Performance Schema阶段检测。默认值为OFF (include)。

-DDISABLE_PSI_STATEMENT=bool
是否排除Performance Schema语句检测。默认值为OFF (include)。

-DDISABLE_PSI_STATEMENT_DIGEST=bool
是否排除Performance Schema statement_digest检测。默认值为OFF (include)。

-DDISABLE_PSI_TABLE=bool
是否排除Performance Schema表检测。默认值为OFF (include)。

-DDISABLE_SHARED=bool
是否禁用构建构建共享库并编译与位置相关的代码。默认值是OFF (编译位置无关代码)。
启用此选项会禁用-fPIC,结果是不构建共享库,包括插件和组件。
调用CMake产生警告:Dynamic plugins are disabled.

-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。
WITH_BOOST有关使用Boost的其他讨论, 请参阅该选项。

-DDOWNLOAD_BOOST_TIMEOUT=seconds
下载Boost库的超时(以秒为单位)。默认值为600秒。
WITH_BOOST有关使用Boost的其他讨论, 请参阅该选项。

-DENABLE_DEBUG_SYNC=bool
从MySQL 8.0.1开始,ENABLE_DEBUG_SYNC删除并启用WITH_DEBUG 启用Debug Sync。

-DENABLE_DOWNLOADS=bool
是否下载可选文件。例如,启用此选项后,CMake会下载测试套件用于运行单元测试的Google Test分发版,或者构建GCS Java包装器所需的Ant和JUnit。

-DENABLE_DTRACE=bool
是否包含对DTrace探针的支持。在MySQL 8.0.1中删除了此选项。

-DENABLE_EXPERIMENTAL_SYSVARS=bool
是否启用实验InnoDB 系统变量。实验系统变量适用于从事MySQL开发的人员,仅应在开发或测试环境中使用,并且可能在未来的MySQL版本中被删除,恕不另行通知。有关实验系统变量的信息,请参阅 /storage/innobase/handler/ha_innodb.ccMySQL源代码树。可以通过搜索“ PLUGIN_VAR_EXPERIMENTAL ”来识别实验系统变量 。

-DENABLE_GCOV=bool
是否包含gcov支持(仅限Linux)。

-DENABLE_GPROF=bool
是否启用gprof(仅限优化的Linux版本)。

-DENABLED_LOCAL_INFILE=bool
此选项控制LOCALMySQL客户端库的已编译默认 功能。因此,没有明确安排的客户端LOCAL根据ENABLED_LOCAL_INFILEMySQL构建时指定的设置禁用或启用功能 。
默认情况下,MySQL二进制发行版中的客户端库是使用ENABLED_LOCAL_INFILEdisabled 编译的 。如果从源代码编译MySQL,则 ENABLED_LOCAL_INFILE根据未进行明确排列的客户端是否应LOCAL分别禁用或启用功能,将其配置为禁用或启用。
ENABLED_LOCAL_INFILE控制客户端LOCAL 功能的默认值。对于服务器, local_infile系统变量控制服务器端LOCAL功能。要显式地使服务器拒绝或允许 LOAD DATA LOCAL语句(无论在构建时或运行时如何配置客户端程序和库) ,分别启用mysqld, local_infile禁用或启用。 local_infile也可以在运行时设置。

-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。

-DIGNORE_AIO_CHECK=bool
如果-DBUILD_CONFIG=mysql_release 在Linux上提供该 选项,则libaio 默认情况下必须链接库。如果您没有 libaio或不想安装它,可以通过指定来禁止检查它 -DIGNORE_AIO_CHECK=1。

-DMAX_INDEXES=num
每个表的最大索引数。默认值为64.最大值为255.忽略小于64的值,并使用默认值64。

-DMYSQL_MAINTAINER_MODE=bool
是否启用MySQL维护者特定的开发环境。如果启用,此选项会导致编译器警告变为错误。

-DMUTEX_TYPE=type
使用的互斥锁类型InnoDB。选项包括:
event:使用事件互斥。这是默认值和原始InnoDB 互斥锁实现。
sys:在UNIX系统上使用POSIX互斥锁。CRITICAL_SECTION如果可用,请在Windows上使用onjects。
futex:使用Linux futexes而不是条件变量来安排等待线程。

-DMYSQLX_TCP_PORT=port_num
X Plugin侦听TCP/IP连接的端口号。默认值为33060。
可以使用该--mysqlx-port选项在服务器启动时设置此值 。

-DMYSQLX_UNIX_ADDR=file_name
服务器侦听X插件套接字连接的Unix套接字文件路径。这必须是绝对路径名。默认是 /tmp/mysqlx.sock。
可以使用该--mysqlx-socket选项在服务器启动时设置此值 。

-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内部:跟踪优化程序。

-DREPRODUCIBLE_BUILD=bool
对于Linux系统上的构建,此选项控制是否要特别注意创建独立于构建位置和时间的构建结果。
在MySQL 8.0.11中添加了此选项。从MySQL 8.0.12开始,它默认ON为 RelWithDebInfo构建版本。

-DUSE_LD_GOLD=bool
如果可用, CMake会使构建过程与GNU gold链接器链接。要禁止使用此链接器,请指定该 -DUSE_LD_GOLD=0选项。

-DWIN_DEBUG_NO_INLINE=bool
是否在Windows上禁用函数内联。默认为关闭(启用内联)。

-DWITH_ANT=path_name
设置构建GCS Java包装器时所需的Ant路径。以与现有WITH_BOOSTCMake选项类似的方式工作 。设置 WITH_ANT为保存Ant tarball或已解压缩的归档的目录的路径。如果WITH_ANT 未设置,或者使用特殊值设置 system,则构建假定存在二进制 ant$PATH。

-DWITH_ASAN=bool
是否为支持它的编译器启用AddressSanitizer。默认为关闭。

-DWITH_ASAN_SCOPE=bool
是否为-fsanitize-address-use-after-scope范围外检测启用AddressSanitizer Clang标志。默认为关闭。要使用此选项,-DWITH_ASAN还必须启用。

-DWITH_AUTHENTICATION_LDAP=bool
如果无法构建LDAP身份验证插件,是否报告错误:
如果禁用此选项(默认设置),则会在找到所需的头文件和库时构建LDAP插件。如果不是,CMake会显示相关说明。
如果启用此选项,则无法找到所需的头文件和库会导致CMake 产生错误,从而阻止构建服务器。

-DWITH_AUTHENTICATION_PAM=bool
是否为包含此插件的源树构建PAM身份验证插件。如果指定了此选项且无法编译插件,则构建将失败。

-DWITH_AWS_SDK=path_name
Amazon Web Services软件开发工具包的位置。

-DWITH_BOOST=path_name
构建MySQL需要Boost库。这些 CMake选项可以控制库源位置,以及是否自动下载:
-DWITH_BOOST=path_name 指定Boost库目录位置。也可以通过设置BOOST_ROOT或 WITH_BOOST环境变量来指定Boost位置 。
-DWITH_BOOST=system也是允许的,表示在标准位置的编译主机上安装了正确版本的Boost。在这种情况下,使用已安装的Boost版本,而不是MySQL源代码分发中包含的任何版本。
-DDOWNLOAD_BOOST=bool 指定是否下载Boost源(如果它不在指定位置)。默认是 OFF。

-DDOWNLOAD_BOOST_TIMEOUT=seconds 下载Boost库的超时时间(秒)。默认值为600秒。
例如,如果你通常构建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
是否将客户端协议跟踪框架构建到客户端库中。默认情况下,启用此选项。
另请参见 WITH_TEST_TRACE_PLUGIN选项。

-DWITH_CURL=curl_type
卷曲库 的位置。 curl_type可以是 system(使用系统 卷曲库)或路径名 卷曲库。

-DWITH_DEBUG=bool
是否包含调试支持。
通过调试支持配置MySQL,可以--debug="d,parser_debug" 在启动服务器时使用该选项。这会导致用于处理SQL语句的Bison解析器将解析器跟踪转储到服务器的标准错误输出。通常,此输出将写入错误日志。
InnoDB存储引擎的 同步调试检查定义UNIV_DEBUG在使用该WITH_DEBUG选项编译调试支持时可用 。编译调试支持时, innodb_sync_debug 配置选项可用于启用或禁用 InnoDB同步调试检查。
启用WITH_DEBUG还会启用Debug Sync。该工具用于测试和调试。编译时,默认情况下在运行时禁用调试同步。要启用它,请使用 选项启动mysqld,其中超时值大于0.(默认值为0,禁用调试同步。)成为各个同步点的默认超时。 --debug-sync-timeout=NNN
InnoDB使用该WITH_DEBUG选项编译调试支持时,可以使用存储引擎的 同步调试检查。
有关Debug Sync工具以及如何使用同步点的说明,请参阅 MySQL Internals:Test Synchronization。

-DWITH_DEFAULT_FEATURE_SET=bool
是否使用来自的标志 cmake/build_configurations/feature_set.cmake。

-DWITH_EDITLINE=value
使用哪个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。

-DWITH_INNODB_MEMCACHED=bool
是否生成memcached共享库(libmemcached.so和 innodb_engine.so)。

-DWITH_KEYRING_TEST=bool
是否构建随keyring_file插件附带的测试程序 。默认是 OFF。测试文件源代码位于plugin/keyring/keyring-test 目录中。

-DWITH_LIBEVENT=string
libevent使用 哪个库。允许的值是bundled(默认) system,和yes。如果指定system或yes,libevent则使用系统库(如果存在)。如果未找到系统库,libevent则使用捆绑的 库。memcached libevent需要该 库 InnoDB。

-DWITH_LIBWRAP=bool
是否包含libwrap(TCP包装器)支持。

-DWITH_LZ4=lz4_type
该WITH_LZ4指示的源zlib支持:
bundled:使用lz4 与分发捆绑在一起的库。这是默认值。
system:使用系统 lz4库。如果 WITH_LZ4设置为此值,则不会构建lz4_decompress实用程序。在这种情况下, 可以使用系统lz4命令。

-DWITH_MSAN=bool
是否为支持它的编译器启用MemorySanitizer。默认为关闭。
要使此选项在启用时生效,所有链接到MySQL的库也必须在启用选项的情况下编译。

-DWITH_MECAB={disabled|system|path_name}
使用此选项可编译MeCab解析器。如果已将MeCab安装到其默认安装目录,请进行设置 -DWITH_MECAB=system。该 system选项适用于使用本机程序包管理实用程序从源或二进制文件执行的MeCab安装。如果将MeCab安装到自定义安装目录,请指定MeCab安装的路径。例如, -DWITH_MECAB=/opt/mecab。如果该 system选项不起作用,则指定MeCab安装路径应该适用于所有情况。

-DWITH_MSCRT_DEBUG=bool
是否启用Visual Studio CRT内存泄漏跟踪。默认是OFF。

-DWITH_NUMA=bool
明确设置NUMA内存分配策略。 CMakeWITH_NUMA根据当前平台是否NUMA支持来设置默认 值。对于没有NUMA支持的平台,CMake的 行为如下:
如果没有NUMA选项(正常情况), CMake会继续正常运行,仅产生此警告:NUMA库缺失或所需版本不可用
使用-DWITH_NUMA=ON, CMake中止此错误:NUMA库缺失或所需版本不可用

-DWITH_PROTOBUF=protobuf_type
使用哪种协议缓冲区包。 protobuf_type可以是以下值之一:
bundled:使用与分发捆绑在一起的软件包。这是默认值。
system:使用系统上安装的软件包。
其他值将被忽略,并回退到 bundled。

-DWITH_RAPID=bool
是否构建快速开发周期插件。启用后,将rapid在包含这些插件的构建树中创建目录。禁用时,rapid构建树中不会创建任何 目录。默认值是ON,除非rapid从源树中删除目录 ,否则 默认值为OFF。

-DWITH_LZMA=lzma_type
LZMA库类型支持包括。 lzma_type可以是以下值之一:
bundled:使用与发行版捆绑在一起的LZMA库。这是默认值。
system:使用系统LZMA库。

-DWITH_RE2=re2_type
要包含的RE2库类型支持。 re2_type可以是以下值之一:
bundled:使用与分发捆绑在一起的RE2库。这是默认值。
system:使用系统RE2库。

-DWITH_SSL={ssl_type| path_name}
要包含的SSL支持类型或要使用的OpenSSL安装的路径名。
ssl_type 可以是以下值之一:
system:使用系统SSL库。这是默认值。
在macOS和Windows上,使用system 构建,就像调用CMake path_name并指向已安装的OpenSSL库一样。这是因为他们没有系统SSL库。在Mac OS,BREW将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。
wolfssl:使用wolfSSL库。要使用此选项值,您必须按照extra/README-wolfssl.txt文件中的说明进行 操作。
path_name是要使用的OpenSSL安装的路径名。这可能比使用ssl_type值更可取, system因为它可以防止CMake检测并使用系统上安装的较旧或不正确的OpenSSL版本。(另一种允许做同样事情的方法是设置WITH_SSL为 system并将CMAKE_PREFIX_PATH选项设置 为 path_name。)

-DWITH_SYSTEMD=bool
是否启用systemd支持文件的安装。默认情况下,禁用此选项。启用后,将安装systemd支持文件,并且 不会安装mysqld_safe和System V初始化脚本等脚本。在systemd不可用的平台上,启用会WITH_SYSTEMD 导致CMake出错。
该部分还包括有关指定先前在[mysqld_safe]选项组中指定的 选项的信息。由于 在使用systemd时未安装mysqld_safe,因此必须以其他方式指定此类选项。

-DWITH_SYSTEM_LIBS=bool
此选项充当“ 保护伞 ”选项来设置system的以下任一值 的CMake未明确设置的选项: WITH_CURL, WITH_EDITLINE, WITH_ICU, WITH_LIBEVENT, WITH_LZ4, WITH_LZMA, WITH_PROTOBUF, WITH_RE2, WITH_SSL, WITH_ZLIB。

-DWITH_TEST_TRACE_PLUGIN=bool
是否构建测试协议跟踪客户端插件。默认情况下,禁用此选项。除非启用该选项,否则启用此选项无效 WITH_CLIENT_PROTOCOL_TRACING 。如果MySQL配置为启用了两个选项,则libmysqlclient客户端库将使用内置的测试协议跟踪插件构建,并且所有标准MySQL客户端都会加载插件。但是,即使启用了测试插件,默认情况下它也没有效果。使用环境变量提供对插件的控制。
注意不要不启用 WITH_TEST_TRACE_PLUGIN,如果你想使用自己的协议跟踪的插件,因为只有一个这样的插件可以在同一时间被加载并出现错误尝试加载第二个选项。如果您已经在启用了测试协议跟踪插件的情况下构建了MySQL以查看它是如何工作的,则必须在没有它的情况下重建MySQL,然后才能使用自己的插件。

-DWITH_TSAN=bool
是否为支持它的编译器启用ThreadSanitizer。默认为关闭。

-DWITH_UBSAN=bool
是否为支持它的编译器启用Undefined Behavior Sanitizer。默认为关闭。

-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。请参阅 构建调试配置。

-DWITH_ZLIB=zlib_type
某些功能要求使用压缩库支持构建服务器,例如 COMPRESS()和 UNCOMPRESS()函数,以及客户端/服务器协议的压缩。该 WITH_ZLIB指示的源zlib支持:
bundled:使用zlib与分发捆绑在一起的 库。这是默认值。
system:使用系统 zlib库。如果 WITH_ZLIB设置为此值,则不会构建zlib_decompress实用程序。在这种情况下,可以使用系统openssl zlib命令。

-DWITHOUT_SERVER=bool
是否在没有MySQL服务器的情况下构建。默认值是 OFF,它构建服务器。

猜你喜欢

转载自www.cnblogs.com/wjsffzb/p/9570507.html