2.8.7 Параметры конфигурации источника MySQL
Программа CMake предоставляет значительный контроль над конфигурацией дистрибутива MySQL. Обычно это делается с помощью параметров в командной строке CMake. Для получения информации о поддерживаемых параметрах CMake, выполните одну из этих команд в корневой директории исходного кода:
$> cmake . -LH
$> ccmake .
Вы также можете повлиять на CMake с помощью определенных переменных среды. См. Раздел 6.9, «Переменные среды».
Для булевых параметров значение может быть задано как 1 или ON для включения параметра, или как 0 или OFF для отключения параметра.
Многие параметры конфигурируют значения по умолчанию во время компиляции, которые могут быть переопределены при запуске сервера. Например, параметры CMAKE_INSTALL_PREFIX, MYSQL_TCP_PORT и MYSQL_UNIX_ADDR, которые конфигурируют расположение каталога установки по умолчанию, номер порта TCP/IP и файл Unix-соккета, могут быть изменены при запуске сервера с помощью параметров --basedir, --port и --socket для параметра запуска mysqld. Применительно, описания параметров конфигурации указывают соответствующий параметр запуска mysqld.
В следующих разделах представлена дополнительная информация о параметрах CMake.
Справочник по параметрам CMake
В следующей таблице показаны доступные параметры CMake. В столбце Default, PREFIX обозначает значение параметра CMAKE_INSTALL_PREFIX, который определяет базовый каталог установки. Это значение используется в качестве родительского расположения для нескольких подкаталогов установки.
Таблица 2.15 Справочник по параметрам конфигурации MySQL (CMake)
| Форматы | Описание | Значение по умолчанию |
|---|
ADD_GDB_INDEX | Включить генерацию секции .gdb_index в двоичных файлах | |
|---|---|---|
BUILD_CONFIG | Использовать те же параметры сборки, что и в официальных релизах | |
BUNDLE_RUNTIME_LIBRARIES | Включить библиотеки времени выполнения в MSI и Zip пакеты сервера для Windows | OFF |
CMAKE_BUILD_TYPE | Тип создаваемой сборки | RelWithDebInfo |
CMAKE_CXX_FLAGS | Флаги для компилятора C++ | |
CMAKE_C_FLAGS | Флаги для компилятора C | |
CMAKE_INSTALL_PREFIX | Базовый каталог для установки | /usr/local/mysql |
COMPILATION_COMMENT | Комментарий о среде компиляции | |
COMPILATION_COMMENT_SERVER | Комментарий о среде компиляции для использования mysqld | |
COMPRESS_DEBUG_SECTIONS | Сжать секции отладки двоичных исполняемых файлов | OFF |
CPACK_MONOLITHIC_INSTALL | Создавать ли пакет из одного файла | OFF |
DEFAULT_CHARSET | Стандартный кодовый набор сервера | utf8mb4 |
DEFAULT_COLLATION | Стандартное сопоставление сервера | utf8mb4_0900_ai_ci |
DISABLE_PERFSCHEMA | Включить все параметры сборки DISABLE_PSI_*. | OFF |
DISABLE_PSI_COND | Исключить инструментарий для условий Performance Schema | OFF |
DISABLE_PSI_DATA_LOCK | Исключить инструментарий блокировки данных Performance Schema | OFF |
DISABLE_PSI_ERROR | Исключить инструментарий ошибок сервера Performance Schema | OFF |
DISABLE_PSI_FILE | Исключить инструментарий файлов Performance Schema | OFF |
DISABLE_PSI_IDLE | Исключить инструментарий простоя Performance Schema | OFF |
DISABLE_PSI_MEMORY | Исключить инструментарий памяти Performance Schema | OFF |
DISABLE_PSI_METADATA | Исключить инструментарий метаданных Performance Schema | OFF |
DISABLE_PSI_MUTEX | Исключить инструментарий взаимных исключений Performance Schema | OFF |
DISABLE_PSI_PS | Исключить Prepared statements Performance Schema | OFF |
DISABLE_PSI_RWLOCK | Исключить инструментарий rwlock Performance Schema | OFF |
DISABLE_PSI_SOCKET | Исключить инструментарий сокетов Performance Schema | OFF |
DISABLE_PSI_SP | Исключить инструментарий хранимых программ Performance Schema | OFF |
DISABLE_PSI_STAGE | Исключить инструментарий стадии Performance Schema | OFF |
DISABLE_PSI_STATEMENT | Исключить инструментарий инструкций Performance Schema | OFF |
DISABLE_PSI_STATEMENT_DIGEST | Исключить инструментарий statements_digest Performance Schema | OFF |
DISABLE_PSI_TABLE | Исключить инструментарий таблиц Performance Schema | OFF |
DISABLE_PSI_THREAD | Исключить инструментарий потоков Performance Schema | OFF |
DISABLE_PSI_TRANSACTION | Исключить инструментарий транзакций Performance Schema | OFF |
ENABLED_LOCAL_INFILE | Включить LOCAL для LOAD DATA | OFF |
ENABLED_PROFILING | Включить код профилирования запросов | ON |
ENABLE_EXPERIMENTAL_SYSVARS | Включить экспериментальные системные переменные InnoDB | OFF |
ENABLE_GCOV | Включить поддержку gcov | |
ENABLE_GPROF | Включить gprof (только для оптимизированных Linux сборок) | OFF |
FORCE_COLORED_OUTPUT | Выводить ли цветной вывод компилятора | OFF |
FORCE_INSOURCE_BUILD | Выполнить ли сборку в исходном коде | OFF |
FORCE_UNSUPPORTED_COMPILER | Разрешить ли использование неподдерживаемых компиляторов | OFF |
FPROFILE_GENERATE | Генерировать ли данные профилирования с управлением направляемыми профилями | OFF |
FPROFILE_USE | Использовать ли данные профилирования с управлением направляемыми профилями | OFF |
HAVE_PSI_MEMORY_INTERFACE | Включить модуль прослеживания памяти Performance Schema для функций выделения памяти, используемых в динамическом хранении типов с выравниванием | OFF |
IGNORE_AIO_CHECK | При -DBUILD_CONFIG=mysql_release, пропустить проверку libaio | OFF |
INSTALL_BINDIR | Директория пользовательских исполняемых файлов | PREFIX/bin |
INSTALL_DOCDIR | Директория документации | PREFIX/docs |
INSTALL_DOCREADMEDIR | Директория файла README | PREFIX |
INSTALL_INCLUDEDIR | Директория файлов заголовков | PREFIX/include |
INSTALL_INFODIR | Директория файлов info | PREFIX/docs |
INSTALL_LAYOUT | Выбрать предопределённую структуру установки | STANDALONE |
INSTALL_LIBDIR | Директория файлов библиотеки | PREFIX/lib |
|---|---|---|
INSTALL_MANDIR | Директория справочных страниц | PREFIX/man |
INSTALL_MYSQLSHAREDIR | Директория общих данных | PREFIX/share |
INSTALL_MYSQLTESTDIR | Директория mysql-test | PREFIX/mysql-test |
INSTALL_PKGCONFIGDIR | Директория для файла pkg-config mysqlclient.pc | INSTALL_LIBDIR/pkgconfig |
INSTALL_PLUGINDIR | Директория плагинов | PREFIX/lib/plugin |
INSTALL_PRIV_LIBDIR | Директория установки частной библиотеки | |
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 |
MSVC_CPPCHECK | Включить анализ кода MSVC. | ON |
MUTEX_TYPE | Тип блокировки InnoDB | event |
MYSQLX_TCP_PORT | Номер TCP/IP порта, используемый X-плагином | 33060 |
MYSQLX_UNIX_ADDR | Файл Unix-сокет, используемый X-плагином | /tmp/mysqlx.sock |
MYSQL_DATADIR | Директория данных | |
MYSQL_MAINTAINER_MODE | Включить среду разработки для MySQL-поддерживающего персонала | OFF |
MYSQL_PROJECT_NAME | Имя проекта Windows/macOS | MySQL |
MYSQL_TCP_PORT | Номер TCP/IP порта | 3306 |
MYSQL_UNIX_ADDR | Файл Unix-сокет | /tmp/mysql.sock |
NDB_UTILS_LINK_DYNAMIC | Вызывать динамическую привязку инструментов NDB к ndbclient | |
ODBC_INCLUDES | Директория заголовков ODBC | |
ODBC_LIB_DIR | Директория библиотек ODBC | |
OPTIMIZER_TRACE | Поддержка отслеживания оптимизатора | |
OPTIMIZE_SANITIZER_BUILDS | Оптимизировать сборку инструментов для очистки | ON |
REPRODUCIBLE_BUILD | Уделить особое внимание созданию результата сборки, независимого от расположения и времени сборки | |
SHOW_SUPPRESSED_COMPILER_WARNING | Показывать подавленные предупреждения компилятора, а не завершать с -Werror. | OFF |
SYSCONFDIR | Директория файла настроек | |
SYSTEMD_PID_DIR | Директория для файла PID под systemd | /var/run/mysqld |
SYSTEMD_SERVICE_NAME | Имя службы MySQL под systemd | mysqld |
TMPDIR | Значение по умолчанию tmpdir | |
WIN_DEBUG_NO_INLINE | Отключить встроенные функции | OFF |
WITHOUT_SERVER | Не собирать сервер; только для внутреннего использования | OFF |
WITHOUT_xxx_STORAGE_ENGINE | Исключить движок хранения xxx из сборки | |
WITH_ANT | Путь к Ant для сборки обертки GCS Java | |
WITH_ASAN | Включить AddressSanitizer | OFF |
WITH_ASAN_SCOPE | Включить AddressSanitizer -fsanitize-address-use-after-scope флаг Clang | OFF |
WITH_AUTHENTICATION_CLIENT_PLUGINS | Автоматически включено, если собраны соответствующие серверные плагины аутентификации | |
WITH_AUTHENTICATION_LDAP | Выводить ошибку, если плагины аутентификации LDAP не могут быть собраны | OFF |
WITH_AUTHENTICATION_PAM | Собрать плагин аутентификации PAM | OFF |
WITH_AWS_SDK | Расположение набора инструментов для разработки программного обеспечения Amazon Web Services | |
WITH_BUILD_ID | На Linux-системах, сгенерировать уникальный идентификатор сборки | ON |
WITH_CLASSPATH | Путь к classpath, используемый при сборке MySQL Cluster Connector для Java. По умолчанию пустая строка. | |
WITH_CLIENT_PROTOCOL_TRACING | Собрать фреймворк для отслеживания протокола клиента | ON |
WITH_CURL | Расположение библиотеки curl | |
WITH_DEBUG | Включать ли поддержку отладки | OFF |
WITH_DEFAULT_COMPILER_OPTIONS | Использовать ли стандартные опции компилятора | ON |
WITH_DEVELOPER_ENTITLEMENTS | Добавить ли разрешение 'get-task-allow' ко всем исполняемым файлам на macOS для генерации дампа ядра в случае неожиданной остановки сервера | OFF |
WITH_EDITLINE | Библиотека libedit/editline, которую следует использовать | bundled |
|---|---|---|
WITH_ERROR_INSERT | Включить впрыск ошибок в движок хранения NDB. Не следует использовать для сборки библиотек, предназначенных для рабочей среды. | OFF |
WITH_ICU | Тип поддержки ICU | bundled |
WITH_INNODB_EXTRA_DEBUG | Включать дополнительную поддержку отладки для InnoDB. | OFF |
WITH_JEMALLOC | Подключаться с помощью -ljemalloc | OFF |
WITH_LD | Использовать линкер LLVM lld или mold | |
WITH_LIBEVENT | Библиотека libevent, которую следует использовать | bundled |
WITH_LIBWRAP | Включить поддержку libwrap (TCP-оболочки) | OFF |
WITH_LOCK_ORDER | Включить инструмент LOCK_ORDER | OFF |
WITH_LOG_DIAGNOSTIC | Включить диагностическое протоколирование; только для внутреннего использования | OFF |
WITH_LSAN | Запустить LeakSanitizer без AddressSanitizer | OFF |
WITH_LTO | Включить оптимизатор времени компоновки | OFF |
WITH_LZ4 | Тип поддержки библиотеки LZ4 | bundled |
WITH_MECAB | Компилировать MeCab | |
WITH_MSAN | Включить MemorySanitizer | OFF |
WITH_MSCRT_DEBUG | Включить отслеживание утечек памяти CRT Visual Studio | OFF |
WITH_MYSQLX | Отключить протокол X | ON |
WITH_NDB | Сборка MySQL NDB Cluster, включая движок хранения NDB и все программы NDB | OFF |
WITH_NDBAPI_EXAMPLES | Сборка примеров программ API. | OFF |
WITH_NDBCLUSTER | NDB 8.0.30 и ранее: сборка движка хранения NDB. NDB 8.0.31 и новее: устарело; используйте WITH_NDB вместо этого | OFF |
WITH_NDBCLUSTER_STORAGE_ENGINE | До NDB 8.0.31 — только для внутреннего использования. NDB 8.0.31 и новее: переключает (только) включение движка хранения NDBCLUSTER | ON |
WITH_NDBMTD | Сборка бинарного файла многопоточного узла данных | ON |
WITH_NDB_DEBUG | Сборка отладочной версии для тестирования или устранения неполадок. | OFF |
WITH_NDB_JAVA | Включить сборку поддержки Java и ClusterJ. Включено по умолчанию. Поддерживается только в MySQL Cluster. | ON |
WITH_NDB_PORT | Порт по умолчанию, используемый сервером управления, созданным с этим параметром. Если этот параметр не использовался для его сборки, порт сервера управления по умолчанию равен 1186. | [none] |
WITH_NDB_TEST | Включить тестовые программы API NDB. | OFF |
WITH_NDB_TLS_SEARCH_PATH | Путь по умолчанию, используемый программами NDB для поиска файлов сертификата и ключа TLS. | $HOME/ndb-tls |
WITH_NUMA | Установить политику распределения памяти NUMA | |
WITH_PACKAGE_FLAGS | Для флагов, обычно используемых для пакетов RPM/DEB, следует ли добавлять их в автономные сборки на этих платформах | |
WITH_PROTOBUF | Какой пакет Protocol Buffers использовать | bundled |
WITH_RAPID | Сборка плагинов для быстрого цикла разработки | ON |
WITH_RAPIDJSON | Тип поддержки RapidJSON | bundled |
WITH_ROUTER | Сборка MySQL Router | ON |
WITH_SASL | Только для внутреннего использования | |
WITH_SHOW_PARSE_TREE | Поддержка команды SHOW PARSE_TREE для отладки | |
WITH_SSL | Тип поддержки SSL | system |
WITH_SYSTEMD | Включить установку файлов поддержки systemd | OFF |
WITH_SYSTEMD_DEBUG | Включить дополнительную отладочную информацию systemd | OFF |
WITH_SYSTEM_LIBS | Установить системное значение параметров библиотеки, не установленных явно | OFF |
WITH_TCMALLOC | Подключаться с помощью -ltcmalloc. Поддерживается только в Linux | OFF |
WITH_TEST_TRACE_PLUGIN | Сборка плагина трассировки тестового протокола | OFF |
WITH_TSAN | Включить ThreadSanitizer | OFF |
WITH_UBSAN | Включить Undefined Behavior Sanitizer | OFF |
WITH_UNIT_TESTS | Скомпилировать MySQL с модульными тестами | ON |
WITH_UNIXODBC | Включить поддержку unixODBC | OFF |
WITH_VALGRIND | Включить заголовки Valgrind при компиляции | OFF |
WITH_WIN_JEMALLOC | Путь к каталогу, содержащему jemalloc.dll | |
WITH_ZLIB | Тип поддержки zlib | bundled |
WITH_ZSTD | Тип поддержки zstd | bundled |
WITH_xxx_STORAGE_ENGINE | Компилировать движок хранения xxx статически в сервер |
Общие параметры
-
Этот параметр настраивает исходное распределение с теми же параметрами сборки, которые Oracle использует для создания двоичных дистрибутивов для официальных релизов MySQL.
-
В системах Linux генерирует уникальный идентификатор сборки, который используется в качестве значения системной переменной
build_idи записывается в журнал сервера MySQL при запуске. Установите этот параметр в значениеOFF, чтобы отключить эту функцию.Этот параметр не оказывает влияния на платформы, отличные от Linux.
-
-DBUNDLE_RUNTIME_LIBRARIES=boolУказывает, следует ли объединять библиотеки времени выполнения с пакетами сервера MSI и Zip для Windows.
-
Тип сборки:
RelWithDebInfo: Включает оптимизации и генерирует отладочную информацию. Это тип сборки MySQL по умолчанию.Release: Включает оптимизации, но опускает отладочную информацию для уменьшения размера сборки.Debug: Отключает оптимизации и генерирует отладочную информацию. Этот тип сборки также используется, если параметрWITH_DEBUGвключен. То есть,-DWITH_DEBUG=1имеет тот же эффект, что и-DCMAKE_BUILD_TYPE=Debug.
Значения параметров
NoneиMinSizeRelне поддерживаются. -
-DCPACK_MONOLITHIC_INSTALL=boolЭтот параметр влияет на то, будет ли операция make package генерировать несколько файлов пакета установки или один файл. Если параметр отключён, операция генерирует несколько файлов пакета установки, что может быть полезно, если вы хотите установить только подмножество полной установки MySQL. Если параметр включен, генерируется один файл для установки всего.
-
Определяет, следует ли принудительно выполнять сборку в исходном каталоге. Рекомендована сборка вне исходного каталога, поскольку она позволяет выполнять несколько сборок из одного исходного кода, а очистка может быть выполнена быстро путем удаления каталога сборки. Чтобы принудительно выполнить сборку в исходном каталоге, вызовите CMake с параметром
-DFORCE_INSOURCE_BUILD=ON. -
Определяет, следует ли включить вывод цвета компилятора для gcc и clang при компиляции из командной строки. Значение по умолчанию —
OFF.
Параметры расположения установки
Параметр CMAKE_INSTALL_PREFIX указывает базовый каталог установки. Другие параметры с именами вида INSTALL_, которые указывают на расположение компонентов, интерпретируются относительно префикса, и их значения являются относительными путями. Их значения не должны включать префикс. xxx
-
-DCMAKE_INSTALL_PREFIX=dir_nameБазовая директория установки.
Это значение может быть установлено при запуске сервера с помощью опции
--basedir. -
Место установки пользовательских программ.
-
Место установки документации.
-
-DINSTALL_DOCREADMEDIR=dir_nameМесто установки файлов
README. -
Место установки заголовочных файлов.
-
Место установки файлов Info.
-
Выбор предопределенной структуры установки:
STANDALONE: Такая же структура, как используется для пакетов.tar.gzи.zip. По умолчанию.RPM: Структура, похожая на пакеты RPM.SVR4: Структура пакета Solaris.DEB: Структура пакета DEB (экспериментальная).
Вы можете выбрать предопределённую структуру, но изменить расположение отдельных компонентов установки, указав другие опции. Например:
cmake . -DINSTALL_LAYOUT=SVR4 -DMYSQL_DATADIR=/var/mysql/data
Значение
INSTALL_LAYOUTопределяет значение по умолчанию для системной переменнойsecure_file_priv. См. описание этой переменной в разделе 7.1.8, «Системные переменные сервера». -
Место установки файлов библиотек.
-
Место установки руководств.
-
-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, то это значение удаляется. -
Расположение каталога плагинов.
Это значение может быть установлено при запуске сервера с помощью опции
--plugin_dir. -
-DINSTALL_PRIV_LIBDIR=dir_nameРасположение каталога динамических библиотек.
Значение по умолчанию. Для билд RPM, это
/usr/lib64/mysql/private/, для DEB —/usr/lib/mysql/private/, а для TAR —lib/private/.Protobuf. Поскольку это частное расположение, загрузчик (например,
ld-linux.soна Linux) может не найти файлыlibprotobuf.soбез помощи. Чтобы направить загрузчик,RPATH=$ORIGIN/../$INSTALL_PRIV_LIBDIRдобавляется в mysqld и mysqlxtest. Это работает в большинстве случаев, но при использовании функции Группы ресурсов, mysqld являетсяsetsuid, и загрузчик игнорирует любойRPATH, содержащий$ORIGIN. Чтобы преодолеть это, в версиях mysqld для DEB и RPM устанавливается явный полный путь к каталогу, поскольку конечный пункт назначения известен. Для установок tarball требуется исправление mysqld с помощью инструмента, такого как patchelf. -
Место установки сервера mysqld.
-
-DINSTALL_SECURE_FILE_PRIVDIR=dir_nameЗначение по умолчанию для системной переменной
secure_file_priv. Значение по умолчанию зависит от платформы и определяется значением опцииINSTALL_LAYOUTCMake; см. описание системной переменнойsecure_file_privв разделе 7.1.8, «Системные переменные сервера». -
Место установки
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, который может быть использован при настройке Connector/ODBC.
-
Расположение каталога библиотек ODBC, который может быть использован при настройке Connector/ODBC.
-
Каталог файлов конфигурации по умолчанию
my.cnf.Это расположение нельзя задать при запуске сервера, но вы можете запустить сервер с заданным файлом опций с помощью опции
--defaults-file=, гдеfile_namefile_name— полное имя файла. -
Имя каталога, в котором будет создан файл PID, когда MySQL управляется systemd. По умолчанию —
/var/run/mysqld; это может быть изменено неявно в зависимости от значенияINSTALL_LAYOUT.Эта опция игнорируется, если не включена
WITH_SYSTEMD. -
Имя службы MySQL для использования, когда MySQL управляется systemd. По умолчанию —
mysqld; это может быть изменено неявно в зависимости от значенияINSTALL_LAYOUT.Эта опция игнорируется, если не включена
WITH_SYSTEMD.
-
По умолчанию используется расположение для системной переменной
tmpdir. Если не указано иное, значение по умолчанию равноP_tmpdirв<stdio.h>.
Параметры движка хранения
Движки хранения создаются как плагины. Вы можете создать плагин как статический модуль (скомпилированный в сервер) или динамический модуль (скомпилированный как динамическую библиотеку, которую необходимо установить в сервер с помощью INSTALL PLUGIN или параметра --plugin-load перед использованием). Некоторые плагины могут не поддерживать статическую или динамическую компиляцию.
Движки InnoDB, MyISAM, MERGE, MEMORY и CSV являются обязательными (всегда компилируются в сервер) и не требуют явного установки.
Чтобы скомпилировать движок хранения статически в сервер, используйте -DWITH_. Некоторые допустимые значения engine_STORAGE_ENGINE=1engine это ARCHIVE, BLACKHOLE, EXAMPLE и FEDERATED. Примеры:
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
Чтобы скомпилировать MySQL с поддержкой NDB Cluster, используйте параметр WITH_NDB.
Скомпилировать без поддержки 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
Например, чтобы скомпилировать без инструментирования мьютексов, настройте MySQL с помощью -DDISABLE_PSI_MUTEX=1.
Чтобы исключить движок хранения из сборки, используйте -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 или GNU gold. Используется компоновщик lld, и отключен. -
Описательный комментарий о среде компиляции. В то время как mysqld использует
COMPILATION_COMMENT_SERVER, другие программы используютCOMPILATION_COMMENT. -
-DCOMPRESS_DEBUG_SECTIONS=boolСледует ли сжимать отладочные разделы двоичных исполняемых файлов (только Linux). Сжатие отладочных разделов исполняемых файлов экономит место за счет дополнительного времени ЦП во время процесса сборки.
Значение по умолчанию —
OFF. Если этот параметр не установлен явно, но установлена переменная средыCOMPRESS_DEBUG_SECTIONS, параметр принимает значение из этой переменной. -
-DCOMPILATION_COMMENT_SERVER=stringОписательный комментарий о среде компиляции для использования mysqld (например, для установки системной переменной
version_comment). Программы, отличные от сервера, используют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,utf8mb3,utf8mb4,utf16,utf16le,utf32.Это значение можно установить при запуске сервера с помощью параметра
--character-set-server. -
-DDEFAULT_COLLATION=collation_nameСортировка сервера. По умолчанию MySQL использует
utf8mb4_0900_ai_ci. Используйте инструкциюSHOW COLLATION, чтобы определить, какие сортировки доступны для каждой кодировки.Это значение можно установить при запуске сервера с помощью параметра
--collation_server. -
Включить все параметры сборки
DISABLE_PSI_*. Это то же самое, что установить все такие параметры вON.Значение по умолчанию для
DISABLE_PERFSCHEMA—OFF. -
Следует ли исключать инструментарий условий Performance Schema. Значение по умолчанию —
OFF(включить). -
Следует ли исключать инструментарий файлов Performance Schema. Значение по умолчанию —
OFF(включить). -
Следует ли исключать инструментарий простоя Performance Schema. Значение по умолчанию —
OFF(включить). -
Следует ли исключать инструментарий памяти Performance Schema. Значение по умолчанию —
OFF(включить). -
Следует ли исключать инструментарий метаданных Performance Schema. Значение по умолчанию —
OFF(включить). -
Следует ли исключать инструментарий мьютексов Performance Schema. Значение по умолчанию —
OFF(включить). -
Следует ли исключать инструментарий rwlock Performance Schema. Значение по умолчанию —
OFF(включить). -
Следует ли исключать инструментарий сокетов Performance Schema. Значение по умолчанию —
OFF(включить). -
Следует ли исключать инструментарий хранимых процедур Performance Schema. Значение по умолчанию —
OFF(включить). -
Следует ли исключать инструментарий этапов Performance Schema. Значение по умолчанию —
OFF(включить). -
Следует ли исключать инструментарий операторов Performance Schema. Значение по умолчанию —
OFF(включить). -
-DDISABLE_PSI_STATEMENT_DIGEST=boolСледует ли исключать инструментарий дайджестов операторов Performance Schema. Значение по умолчанию —
OFF(включить). -
Следует ли исключать инструментарий таблиц Performance Schema. Значение по умолчанию —
OFF(включить). -
Исключить инструментарий экземпляров подготовленных операторов Performance Schema. Значение по умолчанию —
OFF(включить). -
Исключить инструментарий потоков Performance Schema. Значение по умолчанию —
OFF(включить).Отключайте потоки только при сборке без какого-либо инструментария, поскольку другие инструментарии зависят от потоков.
-
-DDISABLE_PSI_TRANSACTION=boolИсключить инструментарий транзакций Performance Schema. Значение по умолчанию —
OFF(включить). -
Исключить инструментарий блокировки данных схемы производительности. Значение по умолчанию —
OFF(включить). -
Исключить инструментарий ошибок сервера схемы производительности. Значение по умолчанию —
OFF(включить). -
-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также может быть установлена во время выполнения. См. Раздел 8.1.6, «Меры безопасности для LOAD DATA LOCAL». -
Включать ли код профилирования запросов (для операторов
SHOW PROFILEиSHOW PROFILES). -
-DFORCE_UNSUPPORTED_COMPILER=boolПо умолчанию CMake проверяет минимальные версии поддерживаемых компиляторов; чтобы отключить эту проверку, используйте
-DFORCE_UNSUPPORTED_COMPILER=ON. -
Генерировать ли данные профилируемой оптимизации (PGO). Этот параметр доступен для экспериментирования с PGO с GCC. См.
cmake/fprofile.cmakeв дистрибутиве исходного кода MySQL для получения информации об использованииFPROFILE_GENERATEиFPROFILE_USE. Эти параметры были протестированы с GCC 8 и 9. -
Использовать ли данные профилируемой оптимизации (PGO). Этот параметр доступен для экспериментирования с PGO с GCC. См. файл
cmake/fprofile.cmakeв дистрибутиве исходного кода MySQL для получения информации об использованииFPROFILE_GENERATEиFPROFILE_USE. Эти параметры были протестированы с GCC 8 и 9.Включение
FPROFILE_USEтакже включаетWITH_LTO. -
-DHAVE_PSI_MEMORY_INTERFACE=boolВключать ли модуль трассировки памяти схемы производительности для функций выделения памяти (функции библиотеки
ut::aligned_), используемые в динамическом хранении типов с выравниванием.name -
Если параметр
-DBUILD_CONFIG=mysql_releaseзадан в Linux, библиотекаlibaioдолжна быть связана по умолчанию. Если у вас нетlibaioили вы не хотите устанавливать её, вы можете подавить проверку, указав-DIGNORE_AIO_CHECK=1. -
Максимальное количество индексов на таблицу. Значение по умолчанию — 64. Максимальное значение — 255. Значения меньше 64 игнорируются, и используется значение по умолчанию 64.
-
Включать ли среду разработки, специфичную для сопровождающих MySQL. Если включено, этот параметр приводит к тому, что предупреждения компилятора становятся ошибками.
-
-DWITH_DEVELOPER_ENTITLEMENTS=boolДобавлять ли право
get-task-allowко всем исполняемым файлам для генерации дампа памяти в случае неожиданной остановки сервера.В macOS 11+ дампы памяти ограничены процессами с правом
com.apple.security.get-task-allow, которое включает этот параметр CMake. Это право позволяет другим процессам подключаться и читать/изменять память процессов, и позволяет--core-fileработать как ожидается. -
Тип мьютекса, используемый
InnoDB. Варианты включают:event: Использовать мьютексы событий. Это значение по умолчанию и оригинальная реализация мьютексаInnoDB.sys: Использовать мьютексы POSIX в UNIX-системах. Использовать объектыCRITICAL_SECTIONв Windows, если доступны.futex: Использовать Linux futexes вместо переменных условий для планирования ожидающих потоков.
-
Номер порта, на котором X Plugin прослушивает TCP/IP-подключения. Значение по умолчанию — 33060.
Это значение может быть установлено при запуске сервера с помощью системной переменной
mysqlx_port. -
Путь к файлу Unix-соккета, на котором сервер прослушивает подключения сокета X Plugin. Это должно быть абсолютное имя пути. Значение по умолчанию —
/tmp/mysqlx.sock.Это значение может быть установлено при запуске сервера с помощью системной переменной
mysqlx_port. -
Для Windows или macOS, имя проекта для включения в имя файла проекта.
-
Номер порта, на котором сервер прослушивает TCP/IP-подключения. Значение по умолчанию — 3306.
Это значение может быть установлено при запуске сервера с помощью параметра
--port. -
Путь к файлу Unix-соккета, на котором сервер прослушивает подключения сокета. Это должно быть абсолютное имя пути. Значение по умолчанию —
/tmp/mysql.sock.Это значение может быть установлено при запуске сервера с помощью параметра
--socket. -
Поддерживать ли трассировку оптимизатора. См. Раздел 10.15, «Трассировка оптимизатора».
-
Для сборок в Linux-системах этот параметр управляет тем, следует ли проявлять дополнительную осторожность для создания результата сборки, не зависящего от местоположения и времени сборки.
Этот параметр по умолчанию имеет значение
ONдля сборокRelWithDebInfo. -
-DSHOW_SUPPRESSED_COMPILER_WARNINGS=boolПоказывать подавленные предупреждения компилятора, и делать это без сбоя с
-Werror. По умолчанию —OFF. -
Отключать ли встраивание функций в Windows. Значение по умолчанию —
OFF(встраивание включено).
-
CMake по умолчанию использует стандартный компоновщик. Дополнительно можно передать
lldилиmold, чтобы указать альтернативный компоновщик. mold должен иметь версию 2 или выше.Этот параметр можно использовать на системах на базе Linux, кроме Enterprise Linux, где всегда используется компоновщик ld.
ПримечаниеРанее параметр
USE_LD_LLDмог использоваться для включения (по умолчанию) или явного отключения компоновщика LLVM lld для Clang. В MySQL 8.3,USE_LD_LLDбыл удалён. -
Указывает путь к Ant, необходимый при построении обертки GCS для Java. Установите
WITH_ANTв путь к каталогу, где сохранён архив Ant или распакованный архив. ЕслиWITH_ANTне задан или задан со специальным значениемsystem, процесс сборки предполагает наличие двоичного файлаantв$PATH. -
Включает ли AddressSanitizer для компиляторов, которые его поддерживают. По умолчанию значение равно
OFF. -
Включает ли AddressSanitizer
-fsanitize-address-use-after-scopeфлаг Clang для обнаружения использования после области видимости. По умолчанию выключено. Для использования этого параметра необходимо также включить-DWITH_ASAN. -
-DWITH_AUTHENTICATION_CLIENT_PLUGINS=boolЭтот параметр включается автоматически, если построены соответствующие плагины аутентификации сервера. Его значение, следовательно, зависит от других параметров CMake, и его не следует явно устанавливать.
-
-DWITH_AUTHENTICATION_LDAP=boolДолжен ли генерироваться код об ошибке, если не удаётся построить плагины аутентификации LDAP:
Если этот параметр отключён (по умолчанию), плагины LDAP строятся, если найдены необходимые заголовочные файлы и библиотеки. Если они не найдены, CMake выводит сообщение об этом.
Если этот параметр включён, невозможность найти необходимые заголовочные файлы и библиотеки приводит к ошибке CMake, препятствуя построению сервера.
-
-DWITH_AUTHENTICATION_PAM=boolВключает ли сборку плагина аутентификации PAM для исходных деревьев, включающих этот плагин. (См. Раздел 8.4.1.4, «PAM Pluggable Authentication».) Если этот параметр указан, и плагин не может быть скомпилирован, сборка завершается неудачно.
-
Путь к набору средств разработки Amazon Web Services.
-
-DWITH_CLIENT_PROTOCOL_TRACING=boolВключает ли создание в клиентской библиотеке клиентской инфраструктуры отслеживания протоколов. По умолчанию этот параметр включён.
Сведения о написании плагинов отслеживания протоколов клиента см. в Написание плагинов отслеживания протоколов.
См. также параметр
WITH_TEST_TRACE_PLUGIN. -
Путь к библиотеке
curl.curl_typeможет бытьsystem(использовать системнуюcurlбиблиотеку), путём к библиотекеcurl,no|off|noneдля отключения поддержки curl, илиbundledдля использования связанного дистрибутива curl вextra/curl/. -
Включает ли поддержку отладки.
Настройка MySQL с поддержкой отладки позволяет использовать параметр
--debug="d,parser_debug"при запуске сервера. Это заставляет парсер Bison, используемый для обработки SQL-запросов, выводить трассировку парсера в стандартный поток ошибок сервера. Как правило, этот вывод записывается в лог ошибок.Проверка отладки синхронизации для хранилища данных
InnoDBопределяется вUNIV_DEBUGи доступна, когда поддержка отладки скомпилирована с использованием параметраWITH_DEBUG. При компиляции с поддержкой отладки можно использовать конфигурационный параметрinnodb_sync_debug, чтобы включить или отключить проверку отладки синхронизацииInnoDB.Включение
WITH_DEBUGтакже включает отладку синхронизации. Эта функция используется для тестирования и отладки. При компиляции отладка синхронизации по умолчанию выключена во время выполнения. Чтобы включить её, запустите mysqld с параметром--debug-sync-timeout=, гдеNN- значение таймаута, большее 0. (Значение по умолчанию равно 0, что отключает отладку синхронизации.)Nстановится значением таймаута по умолчанию для отдельных точек синхронизации.Проверка отладки синхронизации для хранилища данных
InnoDBдоступна при включенной поддержке отладки с использованием параметраWITH_DEBUG.Описание функции отладки синхронизации и способы использования точек синхронизации см. в MySQL Internals: Тестирование синхронизации.
-
Включает параметры серверной диагностической записи журнала (
--log-diagnostic-enableи--log-diagnostic). Только для внутреннего использования. -
Какую библиотеку
libedit/editlineиспользовать. Допустимые значения —bundled(по умолчанию) иsystem. -
-DWITH_ICU={icu_type|path_name}MySQL использует International Components for 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. -
Включает ли компоновку с
-ljemalloc. При включении встроенныеmalloc(),calloc(),realloc()иfree()функции отключаются. По умолчанию значение равноOFF.WITH_JEMALLOCиWITH_TCMALLOCвзаимоисключающие.
-
Какую библиотеку
libeventиспользовать. Допустимые значения —bundled(по умолчанию) иsystem. Если указаноsystem, и библиотекаlibeventне найдена в системе, произойдет ошибка, и встроенная библиотекаlibeventне будет использована.Библиотека
libeventнеобходима для X Plugin и MySQL Router. -
Включать ли поддержку
libwrap(TCP-оберток). -
Включать ли инструментарий LOCK_ORDER. По умолчанию этот параметр отключён, и в сборке сервера нет инструментария. Если инструментарий включён, инструмент LOCK_ORDER доступен и может быть использован, как описано в разделе 7.9.3, «Инструмент LOCK_ORDER».
ПримечаниеПри включённом параметре
WITH_LOCK_ORDER, сборка MySQL требует программу flex. -
Запускать ли LeakSanitizer без AddressSanitizer. По умолчанию —
OFF. -
Включать ли оптимизатор на этапе компоновки, если компилятор его поддерживает. По умолчанию —
OFF, если не включёнFPROFILE_USE. -
Параметр
WITH_LZ4указывает источник поддержкиzlib:bundled: Использовать библиотекуlz4, входящую в дистрибутив. Это значение по умолчанию.system: Использовать системную библиотекуlz4.
-
-DWITH_MECAB={disabled|system|path_name}Используйте этот параметр для компиляции парсера MeCab. Если MeCab установлен по умолчанию, задайте
-DWITH_MECAB=system. Параметрsystemприменяется к установкам MeCab из исходного кода или из библиотек с помощью утилиты управления пакетами. Если MeCab установлен в пользовательскую директорию, укажите путь к установке MeCab, например,-DWITH_MECAB=/opt/mecab. Если параметрsystemне работает, указание пути к установке MeCab должно сработать во всех случаях.Для получения дополнительной информации см. раздел 14.9.9, «MeCab Full-Text Parser Plugin».
-
Включать ли MemorySanitizer для компиляторов, которые его поддерживают. По умолчанию выключено.
Для того, чтобы этот параметр имел эффект при включении, все библиотеки, связанные с MySQL, также должны быть скомпилированы с включенным параметром.
-
Включать ли отслеживание утечек памяти Visual Studio CRT. По умолчанию —
OFF. -
Включать ли анализ кода MSVC. По умолчанию —
ON. -
Включать ли поддержку X Plugin. По умолчанию —
ON. См. главу 22, «Использование MySQL в качестве хранилища документов». -
Явно задать политику выделения памяти NUMA. CMake устанавливает значение по умолчанию
WITH_NUMAв зависимости от наличия поддержкиNUMAна текущей платформе. Для платформ без поддержки NUMA CMake действует следующим образом:Без параметра NUMA (обычный случай) CMake продолжает работу, выдав предупреждение: Библиотека NUMA отсутствует или не соответствует требуемой версии.
С параметром
-DWITH_NUMA=ON, CMake прерывает работу с ошибкой: Библиотека NUMA отсутствует или не соответствует требуемой версии.
-
Для флагов, обычно используемых для пакетов RPM и Debian, добавить ли их в автономные сборки на этих платформах. По умолчанию —
ONдля сборок без отладки. -
Какой пакет Protocol Buffers использовать.
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 Router. По умолчанию —
ON. -
Только для внутреннего использования. Не поддерживается в Windows.
-
-DWITH_SSL={|ssl_typepath_name}Для поддержки зашифрованных соединений, энтропии для генерации случайных чисел и других операций, связанных с шифрованием, MySQL должен быть собран с использованием библиотеки SSL. Этот параметр указывает, какую библиотеку 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.-
openssl: Использовать альтернативный системный пакет OpenSSL, такой какversionopenssl11в EL7 илиopenssl3(илиopenssl3-fips) в EL8.Плагины аутентификации, такие как LDAP и Kerberos, отключены, поскольку они не поддерживают эти альтернативные версии OpenSSL.
-
path_name— это имя пути к используемой установке OpenSSL. Это может быть предпочтительнее использования значенияssl_typesystem, поскольку это может предотвратить обнаружение и использование CMake устаревшей или неверной версии OpenSSL, установленной в системе. (Другой допустимый способ сделать то же самое — установитьWITH_SSLвsystemи установить параметрCMAKE_PREFIX_PATHвpath_name.)
Для получения дополнительной информации о настройке библиотеки SSL см. Раздел 2.8.6, «Настройка поддержки библиотеки SSL».
-
-
Включает поддержку
SHOW PARSE_TREEна сервере, используется только в разработке и отладке. Не используется для релизных сборок и не поддерживается в production. -
Включать ли установку файлов поддержки systemd. По умолчанию этот параметр отключен. При включении устанавливаются файлы поддержки systemd, а скрипты, такие как mysqld_safe и скрипт инициализации System V, не устанавливаются. На платформах, где systemd недоступен, включение
WITH_SYSTEMDприводит к ошибке от CMake.Если сервер был собран с использованием этого параметра, MySQL включает все сообщения systemd в лог ошибок сервера (см. Раздел 7.4.2, «Журнал ошибок»).
Для получения дополнительной информации об использовании systemd см. Раздел 2.5.9, «Управление сервером MySQL с помощью systemd». Этот раздел также содержит информацию о указании параметров, в противном случае указанных в группах параметров
[mysqld_safe]. Поскольку mysqld_safe не устанавливается при использовании systemd, такие параметры должны указываться другим способом. -
Этот параметр служит параметром “зонтика” для установки значения
systemлюбого из следующих параметров CMake, которые не установлены явно:WITH_CURL,WITH_EDITLINE,WITH_ICU,WITH_LIBEVENT,WITH_LZ4, ,WITH_PROTOBUF, ,WITH_SSL,WITH_ZLIB,WITH_ZSTD. -
Создавать ли дополнительную отладочную информацию systemd для платформ, на которых systemd используется для запуска MySQL. Значение по умолчанию —
OFF. -
Связывать ли с
-ltcmalloc. Если включено, встроенныеmalloc(),calloc(),realloc()иfree()процедуры отключены. Значение по умолчанию —OFF.Библиотека
tcmallocвключена в исходный код; вы можете заставить сборку использовать встроенную версию, установив этот параметр вBUNDLED.BUNDLEDподдерживается только в Linux-системах.WITH_TCMALLOCиWITH_JEMALLOCявляются взаимоисключающими. -
Создавать ли плагин клиента трассировки протокола тестирования (см. Using the Test Protocol Trace Plugin). По умолчанию этот параметр отключен. Включение этого параметра не оказывает никакого влияния, если параметр
WITH_CLIENT_PROTOCOL_TRACINGне включен. Если MySQL настроен с включенными обоими параметрами, библиотека клиентаlibmysqlclientсоздается со встроенным плагином трассировки протокола тестирования, и все стандартные клиенты MySQL загружают плагин. Однако даже при включении тестового плагина он по умолчанию не оказывает никакого влияния. Управление плагином осуществляется с помощью переменных среды; см. Using the Test Protocol Trace Plugin.ПримечаниеНе следует включать параметр
WITH_TEST_TRACE_PLUGIN, если вы хотите использовать собственные плагины трассировки протокола, поскольку одновременно может быть загружен только один такой плагин, и при попытке загрузить второй возникает ошибка. Если вы уже собрали MySQL с включенным плагином трассировки протокола тестирования, чтобы увидеть, как он работает, вы должны пересобрать MySQL без него, прежде чем сможете использовать собственные плагины.Для получения информации о написании плагинов трассировки см. Writing Protocol Trace Plugins.
-
Включать ли ThreadSanitizer для компиляторов, которые его поддерживают. По умолчанию отключен.
-
Включать ли Undefined Behavior Sanitizer для компиляторов, которые его поддерживают. По умолчанию отключен.
-
При включении компилировать MySQL с модульными тестами. Значение по умолчанию —
ON, если сервер не компилируется. -
Включает поддержку unixODBC для Connector/ODBC.
-
Включать ли заголовочные файлы Valgrind, которые предоставляют доступ к API Valgrind для кода MySQL. Значение по умолчанию —
OFF.Для генерации отладочной сборки, поддерживающей Valgrind,
-DWITH_VALGRIND=1обычно сочетается с-DWITH_DEBUG=1. См. Building Debug Configurations.
-
В Windows укажите путь к каталогу, содержащему
jemalloc.dll, чтобы включить функциональность jemalloc. Система сборки копируетjemalloc.dllв тот же каталог, что иmysqld.exeи/илиmysqld-debug.exe, и использует его для операций управления памятью. Стандартные функции памяти используются, еслиjemalloc.dllне найден или не экспортирует необходимые функции. Сообщение журнала уровня INFORMATION записывает, найден ли и используется ли jemalloc.Этот параметр включён для официальных двоичных файлов MySQL для Windows.
-
Некоторые функции требуют, чтобы сервер был построен с поддержкой библиотеки сжатия, такой как функции
COMPRESS()иUNCOMPRESS(), а также сжатие клиентского/серверного протокола. ПараметрWITH_ZLIBуказывает источник поддержкиzlib:Минимально поддерживаемая версия
zlib— 1.2.13.bundled: Используйте библиотекуzlib, входящую в состав дистрибутива. Это значение по умолчанию.system: Используйте системную библиотекуzlib.
-
Сжатие подключений с использованием алгоритма
zstd(см. Раздел 6.2.8, «Управление сжатием подключений») требует, чтобы сервер был построен с поддержкой библиотекиzstd. ПараметрWITH_ZSTDуказывает источник поддержкиzstd:bundled: Используйте библиотекуzstd, входящую в состав дистрибутива. Это значение по умолчанию.system: Используйте системную библиотекуzstd.
-
Нужно ли строить MySQL Server без сервера. По умолчанию OFF, что означает построение сервера.
Этот параметр считается экспериментальным; предпочтительно строить с сервером.
Этот параметр также предотвращает построение хранилища
NDBили каких-либо двоичных файловNDB, включая программы управления и узлы данных.
Флаги компилятора
-
Флаги для компилятора C.
-
Флаги для компилятора C++.
-
-DWITH_DEFAULT_COMPILER_OPTIONS=boolНужно ли использовать флаги из
cmake/build_configurations/compiler_options.cmake.ПримечаниеВсе флаги оптимизации тщательно выбраны и протестированы командой сборки MySQL. Их изменение может привести к непредсказуемым результатам и выполняется на ваш страх и риск.
-
-DOPTIMIZE_SANITIZER_BUILDS=boolНужно ли добавлять
-O1 -fno-inlineв сборки с использованием санитайзеров. По умолчаниюON.
Чтобы указать собственные флаги компилятора C и C++, не влияющие на оптимизацию, используйте параметры CMake CMAKE_C_FLAGS и CMAKE_CXX_FLAGS.
При указании собственных флагов компилятора вы, возможно, захотите также указать CMAKE_BUILD_TYPE.
Например, чтобы создать 32-битную релизную сборку на 64-битном компьютере Linux, выполните следующие действия:
$> mkdir build
$> cd build
$> cmake .. -DCMAKE_C_FLAGS=-m32 \
-DCMAKE_CXX_FLAGS=-m32 \
-DCMAKE_BUILD_TYPE=RelWithDebInfo
Если вы задаёте флаги, влияющие на оптимизацию (-O), вы должны установить параметры numberCMAKE_C_FLAGS_ и/или build_typeCMAKE_CXX_FLAGS_, где build_typebuild_type соответствует значению CMAKE_BUILD_TYPE. Чтобы указать другую оптимизацию для типа сборки по умолчанию (RelWithDebInfo), установите параметры CMAKE_C_FLAGS_RELWITHDEBINFO и CMAKE_CXX_FLAGS_RELWITHDEBINFO. Например, чтобы скомпилировать в Linux с -O3 и символами отладки, выполните следующие действия:
$> cmake .. -DCMAKE_C_FLAGS_RELWITHDEBINFO="-O3 -g" \
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O3 -g"
Параметры CMake для компиляции кластера NDB
Для компиляции MySQL с поддержкой кластера NDB можно использовать -DWITH_NDB, что приводит к включению в сборку движка хранения NDB и всех программ NDB. Этот параметр включен по умолчанию. Чтобы предотвратить создание плагина движка хранения NDB, используйте -DWITH_NDBCLUSTER_STORAGE_ENGINE=OFF. Другие аспекты сборки можно контролировать, используя другие параметры, перечисленные в этом разделе.
Следующие параметры применяются при построении исходных кодов MySQL с поддержкой кластера NDB.
-
-DNDB_UTILS_LINK_DYNAMIC={ON|OFF}Управляет тем, как утилиты NDB, такие как ndb_drop_table, будут связаны со
ndbclientстатически (OFF) или динамически (ON);OFF(статическая компоновка) является значением по умолчанию. Обычно статическая компоновка используется при построении этих утилит, чтобы избежать проблем сLD_LIBRARY_PATH, или когда установлены несколько версийndbclient. Этот параметр предназначен для создания образов Docker и, возможно, других случаев, в которых целевая среда подвержена точному контролю, и желательно уменьшить размер образа. -
Устанавливает путь к классам для сборки коннектора MySQL NDB Cluster для Java. По умолчанию пусто. Этот параметр игнорируется, если используется
-DWITH_NDB_JAVA=OFF. -
Включает введение ошибок в ядро
NDB. Только для тестирования; не предназначено для использования при построении библиотек для производства. По умолчаниюOFF. -
Сборка MySQL NDB Cluster; сборка плагина NDB и всех программ кластера NDB.
-
-DWITH_NDBAPI_EXAMPLES={ON|OFF}Сборка примеров программ NDB API в
storage/ndb/ndbapi-examples/. См. , для получения информации об этих программах. -
-DWITH_NDBCLUSTER_STORAGE_ENGINE={ON|OFF}Контролирует (только) включение плагина
ndbclusterв сборку;WITH_NDBавтоматически включает этот параметр, поэтому рекомендуется использоватьWITH_NDBвместо него. -
-DWITH_NDBCLUSTER={ON|OFF}(УСТАРЕЛО)Сборка и подключение поддержки движка хранения
NDBв mysqld.Этот параметр устарел и будет в конечном итоге удален; используйте
WITH_NDBвместо него. -
Сборка исполняемого файла узла данных с множественными потоками ndbmtd. Значение по умолчанию
ON. -
Включить построение отладочных версий библиотек кластера NDB. По умолчанию
OFF. -
Включить сборку кластера NDB с поддержкой Java, включая поддержку ClusterJ (см. ).
Этот параметр имеет значение
ONпо умолчанию. Если вы не хотите компилировать кластер NDB с поддержкой Java, вы должны явно отключить его, указав-DWITH_NDB_JAVA=OFFпри запуске CMake. В противном случае, если Java не найден, конфигурация сборки завершается сбоем. -
Приводит к тому, что сервер управления кластером NDB (ndb_mgmd), который построен, использует этот
portпо умолчанию. Если этот параметр не задан, результирующий сервер управления пытается использовать порт 1186 по умолчанию. -
Если включено, включает набор тестовых программ API NDB. Значение по умолчанию
OFF. -
-DWITH_NDB_TLS_SEARCH_PATH=pathУстанавливает путь по умолчанию, просматриваемый ndb_sign_keys и другими
NDBпрограммами для файлов сертификатов и ключей TLS.По умолчанию для платформ Windows это
$HOMEDIR/ndb-tls; для других платформ, таких как Linux, это$HOME/ndb-tls.
© 2025 Oracle
Licensed under the GPLv2 License.