mysql8 编译安装 cmake参数
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
。
QQ二群 166427999
博客文件如果不能下载请进群下载
如果公司项目有技术瓶颈问题,请联系↓↓
如果需要定制系统开发服务,请联系↓↓
技术服务QQ: 903464207