cmake安装mysql参数

参考资料:

CMAKE_BUILD_TYPE

cmake的构建模式

CMAKE_BUILD_TYPE=Debug | Release | RelWithDebInfo | MinSizeRel

CMAKE_INSTALL_PREFIX

mysql 的安装目录

CMAKE_INSTALL_PREFIX = /usr/local/mysql

COMMUNITY_BUILD

是否为社区版本

COMMUNITY_BUILD = ON

DOWNLOAD_BOOST

是否从下载开源 boost

DOWNLOAD_BOOST = 1

DWITH_BOOST

This CMake script will look for boost in .

DWITH_BOOST = <directory>

DOWNLOAD_BOOST_TIMEOUT

下载 boost 的超时时间, 单位 秒

DOWNLOAD_BOOST_TIMEOUT = 600

ENABLED_PROFILING

是否启用查询分析代码 参考

ENABLED_PROFILING = ON

ENABLE_GCOV

是否包括gcov支持, 不太懂这是什么, 默认关闭.

ENABLE_GCOV = OFF

ENABLE_GPROF

启用gprof, (仅优化Linux版本), 不太懂, 默认关闭

ENABLE_GPROF = OFF

ENABLE_MEMCACHED_SASL

不太懂, 默认关闭

ENABLE_MEMCACHED_SASL = OFF

ENABLE_MEMCACHED_SASL_PWDB

不太懂, 看起来和上面一起是配套的, 也默认关闭

ENABLE_MEMCACHED_SASL_PWDB:BOOL=OFF

FEATURE_SET

这也不太懂, 默认就好了, 它的注释说这个选项好像已经被弃用了

FEATURE_SET=community

INSTALL_LAYOUT

选择预定义的安装布局, STANDALONE

  • STANDALONE:与用于.tar.gz.zip 包的布局相同 。这是默认值。
  • RPM:布局类似于RPM包
  • SVR4:Solaris包布局
  • DEB:DEB封装布局(实验)
INSTALL_LAYOUT = STANDALONE

MYSQL_DATADIR

默认的mysql数据目录

MYSQL_DATADIR = /usr/local/mysql/data

MYSQL_KEYRINGDIR

默认的mysql手册目录

MYSQL_KEYRINGDIR=/usr/local/mysql/keyring

OPTIMIZER_TRACE

optimizer_trace 是mysql5.6之后加入的新功能, explain是各种执行计划选择的结果, 如果想看整个执行计划以及对于多种索引方案之间是如何选择的, 就使用optimizer_trace这个功能

OPTIMIZER_TRACE=ON

REPRODUCIBLE_BUILD

不太懂, 默认关闭

REPRODUCIBLE_BUILD = OFF

TMPDIR

临时文件的目录,P_tmpdir的值可以在 /usr/include/stdio.h中查看,默认 /tmp

TMPDIR = P_tmpdir

WITH_xxx_STORAGE_ENGINE

WITH_ARCHIVE_STORAGE_ENGINE=ON
WITH_BLACKHOLE_STORAGE_ENGINE=ON
WITH_FEDERATED_STORAGE_ENGINE=ON
WITH_INNOBASE_STORAGE_ENGINE=ON
WITH_PARTITION_STORAGE_ENGINE=ON

分别开启 ARCHIVE 、BLACKHOLE 、FEDERATED、INNOBASE、PARTITION 引擎,默认都是开启的

WITH_ASAN

是否启用AddressSanitizer , 不太懂, 默认是关闭的

WITH_ASAN = OFF

WITH_ASAN_SCOPE

不太懂, 看起来像是和上面一个选项是配套的, 默认关闭

WITH_ASAN_SCOPE = OFF

WITH_CLIENT_PROTOCOL_TRACING

是否将客户端协议跟踪框架构建到客户端库中。默认情况下,此选项被启用

WITH_CLIENT_PROTOCOL_TRACING = ON

WITH_DEBUG:BOOL

是否包括调试支持,默认关闭

WITH_DEBUG=OFF

WITH_DEFAULT_COMPILER_OPTIONS

是否使用默认的编译器来编译, 也就是cmake

WITH_DEFAULT_COMPILER_OPTIONS=ON

WITH_DEFAULT_FEATURE_SET

是否使用cmake的特性集

WITH_DEFAULT_FEATURE_SET=ON

WITH_EDITLINE

要使用 哪个libedit/ editline库。允许的值为 bundled(默认值)和 systemWITH_EDITLINE被添加到MySQL 5.7.2中。它取而代之WITH_LIBEDIT,已被删除

WITH_EDITLINE = bundled

WITH_EMBEDDED_SERVER

是否构建libmysqld嵌入式服务器库。 注意: 从libmysqldMySQL 5.7.17起,嵌入式服务器库已被弃用,MySQL 8.0中将被删除

WITH_EMBEDDED_SERVER=ON

WITH_EXTRA_CHARSETS

哪些额外的字符集包括: all, complex, none

WITH_EXTRA_CHARSETS=all

WITH_INNODB_MEMCACHED

是否生成memcached共享库(libmemcached.soinnodb_engine.so

WITH_INNODB_MEMCACHED=OFF

WITH_LZ4:STRING

  • bundled:使用LZ4 与发行版捆绑在一起的库。这是默认值
  • system:使用系统 LZ4库。如果 WITH_LZ4设置为此值,则不构建lz4_decompress实用程序。在这种情况下, 可以使用系统lz4命令
WITH_LZ4 = bundled

WITH_MSAN

是否启用MemorySanitizer,支持它的编译器。默认是关闭。对于此选项,如果启用该功能,则所有连接到MySQL的库也必须已经通过启用该选项进行编译。此选项已添加到MySQL 5.7.4中

WITH_MSAN=OFF

WITH_RAPID

是否构建快速开发周期插件

WITH_RAPID=ON

WITH_SASL

不太懂

WITH_SASL = system

WITH_SSL

要包含的SSL支持类型或要使用的OpenSSL安装的路径名。

  • ssl_type 可以是以下值之一:
    • yes:使用系统SSL库(如果存在),否则与发行版捆绑在一起的库
    • bundled:使用与发行版捆绑在一起的SSL库。这是默认值
    • system:使用系统SSL库
  • path_name是要使用的OpenSSL安装的路径名。使用这个可能比使用这个ssl_type值 更好 system,因为它可以防止CMake检测并使用系统上安装的较旧或不正确的OpenSSL版本。(另一个允许的方式做同样的事情是设置 CMAKE_PREFIX_PATH选项 path_name。)
WITH_SSL = ssl_type | path_name

WITH_TEST_TRACE_PLUGIN

是否构建测试协议跟踪客户端插件. 默认情况下,此选项被禁用。启用此选项不起作用,除非该WITH_CLIENT_PROTOCOL_TRACING 选项被启用。如果MySQL配置启用了这两个选项,libmysqlclient客户端库将内置测试协议跟踪插件构建,所有标准的MySQL客户端都会加载该插件。但是,即使启用测试插件,默认情况下也不起作用。使用环境变量来控制插件; 请参见第28.2.4.11.1节“使用测试协议跟踪插件”

不要启用 WITH_TEST_TRACE_PLUGIN,如果你想使用自己的协议跟踪的插件,因为只有一个这样的插件可以在同一时间被加载并出现错误尝试加载第二个选项。如果您已经使用启用了测试协议跟踪插件的MySQL来构建MySQL,以了解它是如何工作的,那么在使用自己的插件之前,您必须重新构建MySQL。

WITH_TEST_TRACE_PLUGIN = OFF

WITH_UBSAN

是否为支持它的编译器启用Undefined Behavior Sanitizer。默认是关闭。此选项已添加到MySQL 5.7.6

WITH_UBSAN=OFF

WITH_UNIT_TESTS

如果启用,则使用单元测试编译MySQL。默认值为ON,除非服务器未被编译

WITH_UNIT_TESTS=ON

WITH_VALGRIND

是否在Valgrind头文件中编译,这将Valgrind API暴露给MySQL代码。默认是 OFF

要生成一个Valgrind感知的调试构建, -DWITH_VALGRIND=1通常与之结合-DWITH_DEBUG=1。请参阅 构建调试配置

WITH_VALGRIND=OFF

WITH_ZLIB

某些功能要求服务器使用压缩库支持(如功能COMPRESS()UNCOMPRESS()功能)以及客户端/服务器协议的压缩来构建 。这 WITH_ZLIB表明zlib支持的来源:

  • bundled:使用zlib与发行版捆绑在一起的 库。这是默认值。
  • system:使用系统 zlib库。
WITH_ZLIB=bundled