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_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 | Исключить подготовленные запросы 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 для сборки оболочки Java GCS | |
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-wrappers) | OFF |
WITH_LOCK_ORDER | Включить инструмент LOCK_ORDER | OFF |
WITH_LSAN | Запускать LeakSanitizer без AddressSanitizer | OFF |
WITH_LTO | Включить оптимизатор link-time | OFF |
WITH_LZ4 | Тип поддержки библиотеки LZ4 | bundled |
WITH_MECAB | Компилировать MeCab | |
WITH_MSAN | Включить MemorySanitizer | OFF |
WITH_MSCRT_DEBUG | Включить отслеживание утечек памяти Visual Studio CRT | 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. BUNDLED поддерживается только на 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. Чтобы преодолеть это, в DEB и RPM-версиях mysqld устанавливается явный полный путь к каталогу, так как целевой пункт назначения известен. Для установок 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, и он отключен, если используется компоновщик, отличный от lld или GNU gold. -
Описательный комментарий об среде компиляции. В то время как 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. -
Исключать ли инструментарий условий 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(включить). -
Исключить инструментарий блокировки данных performance schema. Значение по умолчанию —
OFF(включить). -
Исключить инструментарий ошибок сервера performance schema. Значение по умолчанию —
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, необходимый при сборке Java-обёртки GCS. Установите
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.5, «PAM Pluggable Authentication».) Если этот параметр задан, и плагин не может быть скомпилирован, сборка завершается ошибкой.
-
Путь к набору инструментов для разработки ПО Amazon Web Services.
-
-DWITH_CLIENT_PROTOCOL_TRACING=boolВключает ли сборку клиента-стороны фреймворка отслеживания протокола в клиентской библиотеке. По умолчанию этот параметр включён.
Подробную информацию об написании плагинов отслеживания протоколов клиента см. в Writing Protocol Trace Plugins.
См. также параметр
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.Описание механизма Debug Sync и использования точек синхронизации см. в MySQL Internals: Test Synchronization.
-
Какую библиотеку
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_typesystem, так как это может предотвратить обнаружение и использование 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-плагина и 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».
-
Включать ли MemorySanitizer для компиляторов, которые его поддерживают. По умолчанию отключен.
Для того чтобы этот параметр действовал при включении, все библиотеки, связанные с MySQL, также должны быть скомпилированы с включенным параметром.
-
Включать ли трассировку утечек памяти Visual Studio CRT. Значение по умолчанию —
OFF. -
Включать ли анализ кода MSVC. Значение по умолчанию —
ON. -
Создавать ли со поддержкой плагина X. Значение по умолчанию —
ON. См. главу 22, «Использование MySQL в качестве хранилища документов». -
Явно задать политику распределения памяти NUMA. CMake устанавливает значение по умолчанию
WITH_NUMAв зависимости от того, есть ли поддержкаNUMAна текущей платформе. Для платформ без поддержки NUMA CMake работает следующим образом:Без параметра NUMA (обычный случай) CMake продолжает работу нормально, выводя только это предупреждение: NUMA library missing or required version not available.
С параметром
-DWITH_NUMA=ONCMake завершается с ошибкой: NUMA library missing or required version not available.
-
Для флагов, обычно используемых для пакетов 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на сервере, используется только для разработки и отладки. Не используется для релизных сборок или не поддерживается в рабочей среде.
-
Включать ли установку файлов поддержки 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.Начиная с MySQL 8.4.1, в исходном коде включена библиотека
tcmalloc; можно заставить сборку использовать свёрнутую версию, установив этот параметр вBUNDLED.BUNDLEDподдерживается только на системах Linux.WITH_TCMALLOCиWITH_JEMALLOCвзаимоисключающие. -
Создавать ли плагин клиента трассировки протокола тестов (см. Использование плагина трассировки протокола тестов). По умолчанию этот параметр отключен. Включение этого параметра не повлияет, если не включен параметр
WITH_CLIENT_PROTOCOL_TRACING. Если MySQL сконфигурирован с включенными обоими параметрами, клиентская библиотекаlibmysqlclientстроится с встроенным плагином трассировки протокола тестов, и все стандартные клиенты MySQL загружают плагин. Однако даже при включенном плагине трассировки, он по умолчанию не работает. Управление плагином осуществляется с помощью переменных окружения; см. Использование плагина трассировки протокола тестов.ПримечаниеНе включайте параметр
WITH_TEST_TRACE_PLUGIN, если хотите использовать собственные плагины трассировки протокола, так как может быть загружен только один такой плагин, а попытки загрузить второй приводят к ошибке. Если вы уже создали MySQL с включенным плагином трассировки протокола тестов, чтобы посмотреть, как он работает, необходимо пересобрать MySQL без него, прежде чем вы сможете использовать собственные плагины.Сведения по написанию плагинов трассировки см. в Написании плагинов трассировки протоколов.
Включить ли ThreadSanitizer для компиляторов, которые его поддерживают. По умолчанию отключено.
Включить ли Undefined Behavior Sanitizer для компиляторов, которые его поддерживают. По умолчанию отключено.
Если включено, скомпилировать MySQL с модульными тестами. По умолчанию — ON, если сервер не компилируется.
Включить поддержку unixODBC для Connector/ODBC.
Включить ли заголовки Valgrind, которые предоставляют API Valgrind для кода MySQL. По умолчанию — OFF.
Для создания сборки отладки, совместимой с Valgrind, -DWITH_VALGRIND=1 обычно комбинируется с -DWITH_DEBUG=1. См. Создание конфигураций отладки.
В 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. По умолчанию — ВЫКЛ., что подразумевает компиляцию сервера.
Этот параметр считается экспериментальным; предпочтительнее компилировать с сервером.
Этот параметр также предотвращает компиляцию хранилища 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 Cluster
Для компиляции с поддержкой NDB Cluster можно использовать -DWITH_NDB, что приводит к включению в сборку механизма хранения NDB и всех программ NDB. Этот параметр включен по умолчанию. Чтобы предотвратить сборку подключаемого модуля механизма хранения NDB, используйте -DWITH_NDBCLUSTER_STORAGE_ENGINE=OFF. Другие аспекты сборки можно контролировать с помощью других параметров, перечисленных в этом разделе.
Следующие параметры применяются при сборке исходных кодов MySQL с поддержкой NDB Cluster.
-
-DNDB_UTILS_LINK_DYNAMIC={ON|OFF}Управляет тем, связываются ли утилиты NDB, такие как ndb_drop_table, с
ndbclientстатически (OFF) или динамически (ON);OFF(статическая компоновка) используется по умолчанию. Обычно статическая компоновка используется при сборке, чтобы избежать проблем сLD_LIBRARY_PATHили при установке нескольких версийndbclient. Этот параметр предназначен для создания образов Docker и, возможно, других случаев, когда целевая среда находится под строгим контролем, и желательно уменьшить размер образа. -
Устанавливает classpath для сборки MySQL NDB Cluster Connector для Java. Значение по умолчанию пустое. Этот параметр игнорируется, если используется
-DWITH_NDB_JAVA=OFF. -
Включает вставку ошибок в ядро
NDB. Только для тестирования; не предназначено для использования при создании производственных бинарных файлов. Значение по умолчанию —OFF. -
Сборка MySQL NDB Cluster; сборка плагина NDB и всех программ NDB Cluster.
-
-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 Cluster. По умолчанию это
OFF. -
Включить сборку NDB Cluster с поддержкой Java, включая поддержку ClusterJ (см. ).
Этот параметр
ONпо умолчанию. Если вы не хотите компилировать NDB Cluster с поддержкой Java, необходимо явно отключить его, указав-DWITH_NDB_JAVA=OFFпри запуске CMake. В противном случае, если Java не может быть найдена, конфигурация сборки завершается неудачей. -
Заставляет сервер управления NDB Cluster (ndb_mgmd), который создается, использовать этот
portпо умолчанию. Если этот параметр не установлен, созданный сервер управления пытается использовать порт 1186 по умолчанию. -
Если включено, включить набор тестовых программ NDB API. Значение по умолчанию —
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.