cmake安装mysql参数
参考资料:
CMAKE_BUILD_TYPE
cmake 的构建模式
1 | CMAKE_BUILD_TYPE=Debug | Release | RelWithDebInfo | MinSizeRel |
CMAKE_INSTALL_PREFIX
mysql 的安装目录
1 | CMAKE_INSTALL_PREFIX = /usr/local/mysql |
COMMUNITY_BUILD
是否为社区版本
1 | COMMUNITY_BUILD = ON |
DOWNLOAD_BOOST
是否从下载开源 boost
1 | DOWNLOAD_BOOST = 1 |
DWITH_BOOST
This CMake script will look for boost in
1 | DWITH_BOOST = <directory> |
DOWNLOAD_BOOST_TIMEOUT
下载 boost 的超时时间, 单位 秒
1 | DOWNLOAD_BOOST_TIMEOUT = 600 |
ENABLED_PROFILING
是否启用查询分析代码 参考
1 | ENABLED_PROFILING = ON |
ENABLE_GCOV
是否包括 gcov 支持, 不太懂这是什么, 默认关闭.
1 | ENABLE_GCOV = OFF |
ENABLE_GPROF
启用 gprof, (仅优化 Linux 版本), 不太懂, 默认关闭
1 | ENABLE_GPROF = OFF |
ENABLE_MEMCACHED_SASL
不太懂, 默认关闭
1 | ENABLE_MEMCACHED_SASL = OFF |
ENABLE_MEMCACHED_SASL_PWDB
不太懂, 看起来和上面一起是配套的, 也默认关闭
1 | ENABLE_MEMCACHED_SASL_PWDB:BOOL=OFF |
FEATURE_SET
这也不太懂, 默认就好了, 它的注释说这个选项好像已经被弃用了
1 | FEATURE_SET=community |
INSTALL_LAYOUT
选择预定义的安装布局, STANDALONE
STANDALONE
:与用于.tar.gz
和.zip
包的布局相同 。这是默认值。RPM
:布局类似于 RPM 包SVR4
:Solaris 包布局DEB
:DEB 封装布局(实验)
1 | INSTALL_LAYOUT = STANDALONE |
MYSQL_DATADIR
默认的 mysql 数据目录
1 | MYSQL_DATADIR = /usr/local/mysql/data |
MYSQL_KEYRINGDIR
默认的 mysql 手册目录
1 | MYSQL_KEYRINGDIR=/usr/local/mysql/keyring |
OPTIMIZER_TRACE
optimizer_trace 是 mysql5.6 之后加入的新功能, explain 是各种执行计划选择的结果, 如果想看整个执行计划以及对于多种索引方案之间是如何选择的, 就使用 optimizer_trace 这个功能
1 | OPTIMIZER_TRACE=ON |
REPRODUCIBLE_BUILD
不太懂, 默认关闭
1 | REPRODUCIBLE_BUILD = OFF |
TMPDIR
临时文件的目录,P_tmpdir 的值可以在 /usr/include/stdio.h 中查看,默认 /tmp
1 | TMPDIR = P_tmpdir |
WITH_xxx_STORAGE_ENGINE
1 | WITH_ARCHIVE_STORAGE_ENGINE=ON |
分别开启 ARCHIVE 、BLACKHOLE 、FEDERATED、INNOBASE、PARTITION 引擎,默认都是开启的
WITH_ASAN
是否启用 AddressSanitizer , 不太懂, 默认是关闭的
1 | WITH_ASAN = OFF |
WITH_ASAN_SCOPE
不太懂, 看起来像是和上面一个选项是配套的, 默认关闭
1 | WITH_ASAN_SCOPE = OFF |
WITH_CLIENT_PROTOCOL_TRACING
是否将客户端协议跟踪框架构建到客户端库中。默认情况下,此选项被启用
1 | WITH_CLIENT_PROTOCOL_TRACING = ON |
WITH_DEBUG:BOOL
是否包括调试支持,默认关闭
1 | WITH_DEBUG=OFF |
WITH_DEFAULT_COMPILER_OPTIONS
是否使用默认的编译器来编译, 也就是 cmake
1 | WITH_DEFAULT_COMPILER_OPTIONS=ON |
WITH_DEFAULT_FEATURE_SET
是否使用 cmake 的特性集
1 | WITH_DEFAULT_FEATURE_SET=ON |
WITH_EDITLINE
要使用 哪个libedit
/ editline
库。允许的值为 bundled
(默认值)和 system
。WITH_EDITLINE
被添加到 MySQL 5.7.2 中。它取而代之WITH_LIBEDIT
,已被删除
1 | WITH_EDITLINE = bundled |
WITH_EMBEDDED_SERVER
是否构建libmysqld
嵌入式服务器库。 注意: 从libmysqld
MySQL 5.7.17 起,嵌入式服务器库已被弃用,MySQL 8.0 中将被删除
1 | WITH_EMBEDDED_SERVER=ON |
WITH_EXTRA_CHARSETS
哪些额外的字符集包括: all, complex, none
1 | WITH_EXTRA_CHARSETS=all |
WITH_INNODB_MEMCACHED
是否生成 memcached 共享库(libmemcached.so
和 innodb_engine.so
)
1 | WITH_INNODB_MEMCACHED=OFF |
WITH_LZ4:STRING
- bundled:使用 LZ4 与发行版捆绑在一起的库。这是默认值
- system:使用系统 LZ4 库。如果 WITH_LZ4 设置为此值,则不构建 lz4_decompress 实用程序。在这种情况下, 可以使用系统 lz4 命令
1 | WITH_LZ4 = bundled |
WITH_MSAN
是否启用 MemorySanitizer,支持它的编译器。默认是关闭。对于此选项,如果启用该功能,则所有连接到 MySQL 的库也必须已经通过启用该选项进行编译。此选项已添加到 MySQL 5.7.4 中
1 | WITH_MSAN=OFF |
WITH_RAPID
是否构建快速开发周期插件
1 | WITH_RAPID=ON |
WITH_SASL
不太懂
1 | 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
。)
1 | 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。
1 | WITH_TEST_TRACE_PLUGIN = OFF |
WITH_UBSAN
是否为支持它的编译器启用 Undefined Behavior Sanitizer。默认是关闭。此选项已添加到 MySQL 5.7.6
1 | WITH_UBSAN=OFF |
WITH_UNIT_TESTS
如果启用,则使用单元测试编译 MySQL。默认值为 ON,除非服务器未被编译
1 | WITH_UNIT_TESTS=ON |
WITH_VALGRIND
是否在 Valgrind 头文件中编译,这将 Valgrind API 暴露给 MySQL 代码。默认是 OFF
要生成一个 Valgrind 感知的调试构建, -DWITH_VALGRIND=1
通常与之结合-DWITH_DEBUG=1
。请参阅 构建调试配置
1 | WITH_VALGRIND=OFF |
WITH_ZLIB
某些功能要求服务器使用压缩库支持(如功能COMPRESS()
和 UNCOMPRESS()
功能)以及客户端/服务器协议的压缩来构建 。这 WITH_ZLIB
表明zlib
支持的来源:
bundled
:使用zlib
与发行版捆绑在一起的 库。这是默认值。system
:使用系统zlib
库。
1 | WITH_ZLIB=bundled |