Spec-Zone.ru › MySQL 8.4

7.1.8 Переменные системы сервера

Сервер MySQL поддерживает множество переменных системы, которые влияют на его работу. Большинство переменных системы могут быть установлены при запуске сервера с помощью параметров командной строки или в файле параметров. Большинство из них могут быть изменены динамически во время выполнения с помощью оператора SET, что позволяет вам изменить работу сервера без необходимости его остановки и перезапуска. Некоторые переменные являются только для чтения, и их значения определяются средой системы, способом установки MySQL на систему или, возможно, параметрами, используемыми для компиляции MySQL. Большинство переменных системы имеют значение по умолчанию, но существуют исключения, включая переменные только для чтения. Вы также можете использовать значения переменных системы в выражениях.

Установка значения глобальной переменной системы во время выполнения обычно требует привилегии SYSTEM_VARIABLES_ADMIN (или устаревшей привилегии SUPER). Установка значения сеансовой переменной системы во время выполнения обычно не требует особых привилегий и может быть выполнена любым пользователем, хотя есть исключения. Дополнительную информацию см. в разделе 7.1.9.1 «Привилегии переменных системы»

Существует несколько способов просмотра имен и значений переменных системы:

  • Чтобы увидеть значения, используемые сервером на основе его скомпилированных значений по умолчанию и любых файлов параметров, которые он считывает, используйте следующую команду:

    mysqld --verbose --help
    
  • Чтобы увидеть значения, используемые сервером только на основе его скомпилированных значений по умолчанию, игнорируя настройки в любых файлах параметров, используйте следующую команду:

    mysqld --no-defaults --verbose --help
    
  • Чтобы увидеть текущие значения, используемые работающим сервером, используйте оператор SHOW VARIABLES или таблицы переменных системы Performance Schema. См. раздел 29.12.14 «Таблицы переменных системы Performance Schema».

В этом разделе описывается каждая переменная системы. Таблицу сводки переменных системы см. в разделе 7.1.5 «Справочник по переменным системы сервера». Дополнительную информацию об управлении переменными системы см. в разделе 7.1.9 «Использование переменных системы».

Для дополнительной информации о переменных системы см. следующие разделы:

  • Раздел 7.1.9 «Использование переменных системы» описывает синтаксис установки и отображения значений переменных системы.

  • Раздел 7.1.9.2 «Динамические переменные системы» перечисляет переменные, которые можно установить во время выполнения.

  • Информацию о настройке переменных системы можно найти в разделе 7.1.1 «Настройка сервера».

  • Раздел 17.14 «Параметры запуска InnoDB и переменные системы» перечисляет InnoDB переменных системы.

  • Раздел 25.4.3.9.2 «Переменные системы кластера NDB» перечисляет переменные системы, которые специфичны для кластера NDB.

  • Сведения о переменных системы сервера, специфичных для репликации, см. в разделе 19.1.6 «Опции и переменные репликации и двоичного протоколирования».

Примечание

Некоторые из следующих описаний переменных относятся к “включению” или “выключению” переменной. Эти переменные можно включить с помощью оператора SET, установив их значение в ON или 1, или выключить, установив их значение в OFF или 0. Булевы переменные могут быть установлены при запуске в значения ON, TRUE, OFF и FALSE (регистр не учитывается), а также 1 и 0. См. раздел 6.2.2.4 «Модификаторы параметров программы».

Некоторые переменные системы управляют размером буферов или кэшей. Для данного буфера серверу может потребоваться выделить внутренние структуры данных. Эти структуры обычно выделяются из общего объема памяти, выделенного для буфера, а объем требуемого пространства может зависеть от платформы. Это означает, что при присвоении значения переменной системы, контролирующей размер буфера, фактически доступное количество пространства может отличаться от назначенного значения. В некоторых случаях количество может быть меньше назначенного значения. Также возможно, что сервер скорректирует значение вверх. Например, если вы присвоите значение 0 переменной, для которой минимальное значение равно 1024, сервер установит значение в 1024.

Значения размеров буферов, длин и размеров стеков указаны в байтах, если не указано иное.

Примечание

Некоторые описания переменных системы включают размер блока, в этом случае значение, которое не является целым кратным указанного размера блока, округляется вниз до ближайшего меньшего кратного размера блока перед хранением сервером, т. е. до FLOOR(value) * block_size.

Пример: Предположим, что размер блока для данной переменной равен 4096, и вы устанавливаете значение переменной в 100000 (мы предполагаем, что максимальное значение переменной больше этого числа). Так как 100000 / 4096 = 24,4140625, сервер автоматически уменьшает значение до 98304 (24 * 4096) перед его сохранением.

В некоторых случаях указанный максимум для переменной является максимальным значением, разрешенным анализатором MySQL, но не является точным кратным размеру блока. В таких случаях эффективным максимумом является ближайшее меньшее кратное размеру блока.

Пример: Максимальное значение переменной системы показано как 4294967295 (232-1), а ее размер блока равен 1024. 4294967295 / 1024 = 4194303,9990234375, поэтому если вы установите эту переменную на ее указанное максимальное значение, фактически сохраненное значение будет 4194303 * 1024 = 4294966272.

Некоторые переменные системы принимают значения имен файлов. Если не указано иное, по умолчанию расположение файла находится в каталоге данных, если значение является относительным именем файла. Чтобы явно указать расположение, используйте абсолютное имя файла. Предположим, что каталог данных находится в /var/mysql/data. Если переменной, значением которой является имя файла, дано относительное имя, оно находится в /var/mysql/data. Если значение является абсолютным именем файла, его расположение указано этим именем.

  • activate_all_roles_on_login

    Формат командной строки --activate-all-roles-on-login[={OFF|ON}]
    Системная переменная activate_all_roles_on_login
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Включить автоматическую активацию всех предоставленных ролей при входе пользователей на сервер:

    • Если activate_all_roles_on_login включено, сервер активирует все роли, предоставленные каждому пользователю, при входе. Это имеет приоритет над ролями по умолчанию, указанными с помощью SET DEFAULT ROLE.

    • Если activate_all_roles_on_login отключено, сервер активирует роли по умолчанию, указанные с помощью SET DEFAULT ROLE, если таковые имеются, при входе.

    Предоставленные роли включают те, которые явно предоставлены пользователю, и те, которые указаны в значении системной переменной mandatory_roles.

    activate_all_roles_on_login применяется только при входе, а также в начале выполнения хранимых процедур и представлений, выполняемых в контексте создателя. Для изменения активных ролей в сеансе используйте SET ROLE. Для изменения активных ролей для хранимой процедуры тело процедуры должно выполнить SET ROLE.

  • admin_address

    Формат командной строки --admin-address=addr
    Системная переменная admin_address
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Строка

    IP-адрес, на котором нужно прослушивать TCP/IP-соединения на интерфейсе административной сети (см. Раздел 7.1.12.1, «Интерфейсы подключения»). Значение по умолчанию для admin_address отсутствует. Если эта переменная не указана при запуске, сервер не поддерживает административный интерфейс. Сервер также имеет системную переменную bind_address для настройки обычных (неадминистративных) клиентских TCP/IP-соединений. См. Раздел 7.1.12.1, «Интерфейсы подключения».

    Если admin_address указан, его значение должно соответствовать этим требованиям:

    • Значение должно быть единственным IPv4-адресом, IPv6-адресом или именем хоста.

    • Значение не может содержать формат адреса с подстановкой (*, 0.0.0.0 или ::).

    • Значение может включать спецификатор пространства имен сети.

    IP-адрес можно указать как IPv4- или IPv6-адрес. Если значение является именем хоста, сервер разрешает имя в IP-адрес и связывается с этим адресом. Если имя хоста разрешается на несколько IP-адресов, сервер использует первый IPv4-адрес, если таковой есть, или первый IPv6-адрес в противном случае.

    Сервер обрабатывает разные типы адресов следующим образом:

    • Если адрес является IPv4-адресом, отображаемым как IPv6, сервер принимает TCP/IP-соединения для этого адреса в формате IPv4 или IPv6. Например, если сервер связан с ::ffff:127.0.0.1, клиенты могут подключаться, используя --host=127.0.0.1 или --host=::ffff:127.0.0.1.

    • Если адрес является «обычным» IPv4- или IPv6-адресом (например, 127.0.0.1 или ::1), сервер принимает TCP/IP-соединения только для этого IPv4- или IPv6-адреса.

    Эти правила применяются к указанию пространства имен сети для адреса:

    • Для IP-адреса или имени хоста можно указать пространство имен сети.

    • Пространство имен сети не может быть указано для IP-адреса с подстановкой.

    • Для данного адреса пространство имен сети является необязательным. Если оно указано, оно должно быть указано как суффикс /ns непосредственно после адреса.

    • Адрес без суффикса /ns использует глобальное пространство имен системы хоста. Глобальное пространство имен, следовательно, является значением по умолчанию.

    • Адрес с суффиксом /ns использует пространство имен, названное ns.

    • Система хоста должна поддерживать пространства имен сети, и каждое именованное пространство имен должно быть предварительно настроено. Указание несуществующего пространства имен приводит к ошибке.

    Дополнительную информацию о пространствах имен сети см. в Разделе 7.1.14, «Поддержка пространств имен сети».

    Если привязка к адресу завершается ошибкой, сервер выводит сообщение об ошибке и не запускается.

    Системная переменная admin_address аналогична системной переменной bind_address, которая связывает сервер с адресом для обычных клиентских соединений, но с этими отличиями:

    • bind_address разрешает несколько адресов. admin_address разрешает один адрес.

    • bind_address разрешает адреса с подстановкой. admin_address не разрешает.

  • admin_port

    Формат командной строки --admin-port=port_num
    Системная переменная admin_port
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 33062
    Минимальное значение 0
    Максимальное значение 65535

    Номер порта TCP/IP для подключений на административном сетевом интерфейсе (см. Раздел 7.1.12.1, «Интерфейсы подключения»). Установка этой переменной в 0 приводит к использованию значения по умолчанию.

    Установка admin_port не имеет эффекта, если admin_address не указан, так как в этом случае сервер не поддерживает административный сетевой интерфейс.

  • admin_ssl_ca

    Формат командной строки --admin-ssl-ca=file_name
    Системная переменная admin_ssl_ca
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Имя файла
    Значение по умолчанию NULL

    Системная переменная admin_ssl_ca подобна ssl_ca, за исключением того, что она применяется к административному интерфейсу подключения, а не к основному. Сведения о настройке поддержки шифрования для административного интерфейса см. в Разделе «Поддержка административного интерфейса для защищенных подключений».

  • admin_ssl_capath

    Формат командной строки --admin-ssl-capath=dir_name
    Системная переменная admin_ssl_capath
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Имя каталога
    Значение по умолчанию NULL

    Системная переменная admin_ssl_capath подобна переменной ssl_capath, за исключением того, что она применяется к интерфейсу административного подключения, а не к основному интерфейсу подключения. Сведения о настройке поддержки шифрования для административного интерфейса см. в разделе Поддержка шифрованных подключений административного интерфейса.

  • admin_ssl_cert

    Формат командной строки --admin-ssl-cert=file_name
    Системная переменная admin_ssl_cert
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Имя файла
    Значение по умолчанию NULL

    Системная переменная admin_ssl_cert подобна переменной ssl_cert, за исключением того, что она применяется к интерфейсу административного подключения, а не к основному интерфейсу подключения. Сведения о настройке поддержки шифрования для административного интерфейса см. в разделе Поддержка шифрованных подключений административного интерфейса.

  • admin_ssl_cipher

    Формат командной строки --admin-ssl-cipher=name
    Системная переменная admin_ssl_cipher
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Строка
    Значение по умолчанию NULL

    Системная переменная admin_ssl_cipher подобна переменной ssl_cipher, за исключением того, что она применяется к интерфейсу административного подключения, а не к основному интерфейсу подключения. Сведения о настройке поддержки шифрования для административного интерфейса см. в разделе Поддержка шифрованных подключений административного интерфейса.

    В списке, задаваемом этой переменной, могут быть любые из следующих значений:

    • ECDHE-ECDSA-AES128-GCM-SHA256

    • ECDHE-ECDSA-AES256-GCM-SHA384

    • ECDHE-RSA-AES128-GCM-SHA256

    • ECDHE-RSA-AES256-GCM-SHA384

    • ECDHE-ECDSA-CHACHA20-POLY1305

    • ECDHE-RSA-CHACHA20-POLY1305

    • ECDHE-ECDSA-AES256-CCM

    • ECDHE-ECDSA-AES128-CCM

    • DHE-RSA-AES128-GCM-SHA256

    • DHE-RSA-AES256-GCM-SHA384

    • DHE-RSA-AES256-CCM

    • DHE-RSA-AES128-CCM

    • DHE-RSA-CHACHA20-POLY1305

    Попытка включить в список шифров значения, не указанные здесь, при настройке этой переменной приводит к ошибке ().

  • admin_ssl_crl

    Формат командной строки --admin-ssl-crl=file_name
    Системная переменная admin_ssl_crl
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Имя файла
    Значение по умолчанию NULL

    Системная переменная admin_ssl_crl подобна переменной ssl_crl, за исключением того, что она применяется к интерфейсу административного подключения, а не к основному интерфейсу подключения. Сведения о настройке поддержки шифрования для административного интерфейса см. в разделе Поддержка шифрованных подключений административного интерфейса.

  • admin_tls_ciphersuites

    Формат командной строки --admin-tls-ciphersuites=ciphersuite_list
    Переменная системы admin_tls_ciphersuites
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Строка
    Значение по умолчанию NULL

    Переменная системы admin_tls_ciphersuites похожа на tls_ciphersuites, за исключением того, что она применяется к интерфейсу административного подключения, а не к основному интерфейсу подключения. Дополнительную информацию о настройке поддержки шифрования для административного интерфейса см. в разделе Поддержка шифрованных подключений административного интерфейса.

    Значение представляет собой список из нуля или более имён шифровальных наборов, разделённых двоеточием, из списка, представленного ниже:

    • TLS_AES_128_GCM_SHA256

    • TLS_AES_256_GCM_SHA384

    • TLS_CHACHA20_POLY1305_SHA256

    • TLS_AES_128_CCM_SHA256

    Попытка включить в список шифров значения, отсутствующие в этом списке, при установке этой переменной вызывает ошибку ().

  • admin_tls_version

    Формат командной строки --admin-tls-version=protocol_list
    Переменная системы admin_tls_version
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Строка
    Значение по умолчанию TLSv1.2,TLSv1.3

    Переменная системы admin_tls_version похожа на tls_version, за исключением того, что она применяется к интерфейсу административного подключения, а не к основному интерфейсу подключения. Дополнительную информацию о настройке поддержки шифрования для административного интерфейса см. в разделе Поддержка шифрованных подключений административного интерфейса.

    Важно
    • MySQL 8.4 не поддерживает протоколы подключения TLSv1 и TLSv1.1. Дополнительную информацию см. в разделе Отключение поддержки протоколов TLSv1 и TLSv1.1.

    • MySQL 8.4 поддерживает протокол TLSv1.3, при условии, что сервер MySQL был скомпилирован с использованием OpenSSL 1.1.1 или новее. Сервер проверяет версию OpenSSL при запуске, и если она старше 1.1.1, TLSv1.3 удаляется из значения по умолчанию для системной переменной. В этом случае значение по умолчанию — TLSv1.2.

  • authentication_policy

    Формат командной строки --authentication-policy=value
    Системная переменная authentication_policy
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию *,,

    Эта переменная используется для администрирования возможностей многофакторной аутентификации (MFA). Для операторов CREATE USER и ALTER USER, используемых для управления определениями учетных записей MySQL, она определяет, какой фактор или факторы аутентификации могут быть указаны, где “factor” соответствует методу аутентификации или подключаемому модулю, связанному с учетной записью. authentication_policy определяет следующие аспекты многофакторной аутентификации:

    • Количество факторов аутентификации.

    • Допустимые подключаемые модули (или методы) для каждого фактора.

    • Подключаемый модуль аутентификации по умолчанию для спецификаций аутентификации, которые не указывают подключаемый модуль явно.

    Поскольку authentication_policy применяется только при создании или изменении учетных записей, изменения ее значения не влияют на существующие учетные записи пользователей.

    Примечание

    Хотя системная переменная authentication_policy накладывает определенные ограничения на связанные с аутентификацией предложения операторов CREATE USER и ALTER USER, пользователь, обладающий привилегией AUTHENTICATION_POLICY_ADMIN, не подчиняется этим ограничениям. (Предупреждение возникает для операторов, которые в противном случае не были бы разрешены.)

    Значение authentication_policy представляет собой список из 1, 2 или 3 элементов, разделенных запятыми, каждый из которых соответствует фактору аутентификации и имеет одну из перечисленных здесь форм со своими значениями:

    • пустое

      Фактор аутентификации является необязательным; может использоваться любой подключаемый модуль аутентификации.

    • *

      Фактор аутентификации обязателен; может использоваться любой подключаемый модуль аутентификации.

    • plugin_name

      Фактор аутентификации обязателен; этот фактор должен быть plugin_name.

    • *:plugin_name

      Фактор аутентификации обязателен; plugin_name является значением по умолчанию, но может использоваться другой подключаемый модуль аутентификации.

    В каждом случае элемент может быть окружен пробелами. Весь список должен быть заключен в одинарные кавычки.

    authentication_policy должен содержать по крайней мере один непустой фактор, а любые пустые факторы должны идти в конце списка, после любых непустых факторов. Это означает, что ',,' не допускается, поскольку это означает, что все факторы являются необязательными. Каждая учетная запись должна иметь хотя бы один фактор аутентификации.

    Значение по умолчанию для authentication_policy — '*,,'. Это означает, что фактор 1 обязателен в определениях учетных записей и может использовать любой подключаемый модуль аутентификации (с caching_sha2_password по умолчанию), а факторы 2 и 3 являются необязательными и каждый из них может использовать любой подключаемый модуль аутентификации.

    Если authentication_policy не указывает подключаемый модуль по умолчанию для первого фактора, подключаемым модулем по умолчанию для этого фактора является caching_sha2_password, хотя может использоваться и другой подключаемый модуль.

    В следующей таблице показаны некоторые возможные значения для authentication_policy и политика, которую каждый из них устанавливает для создания или изменения учетных записей.

    Таблица 7.4 Примеры значений authentication_policy

    Таблица 7.4 Примеры значений authentication_policy
    authentication_policy Политика
    '*' Только один фактор, который использует caching_sha2_password, хотя может использоваться и другой подключаемый модуль.
    '*,*' Только два фактора; первый фактор использует caching_sha2_password по умолчанию, хотя может использоваться и другой подключаемый модуль; второй может использовать любой подключаемый модуль.
    '*,*,*' Только три фактора, где первый фактор использует caching_sha2_password по умолчанию, хотя может использоваться и другой подключаемый модуль; второй и третий факторы могут использовать любые подключаемые модули.
    '*,' Один или два фактора, где первый фактор использует caching_sha2_password по умолчанию, хотя может использоваться и другой подключаемый модуль; второй фактор является необязательным и может использовать любой подключаемый модуль.
    '*,,' Один, два или три фактора, где первый фактор использует caching_sha2_password по умолчанию, хотя может использоваться и другой подключаемый модуль; второй и третий факторы являются необязательными и могут использовать любые подключаемые модули.
    '*,*,' Два или три фактора, где первый фактор использует caching_sha2_password по умолчанию, хотя может использоваться и другой подключаемый модуль; второй фактор является обязательным, а третий — необязательным; второй и третий факторы могут использовать любые подключаемые модули.
    '*,auth_plugin' Два фактора, где первый фактор использует caching_sha2_password по умолчанию, хотя может использоваться и другой подключаемый модуль; второй фактор должен быть указанным подключаемым модулем.
    'auth_plugin,*,' Два или три фактора, где первый фактор должен быть указанным подключаемым модулем; второй фактор является обязательным, но может использовать любой подключаемый модуль; третий фактор является необязательным и может использовать любой подключаемый модуль.
    '*,*:auth_plugin' Два фактора, где первый фактор использует caching_sha2_password по умолчанию, хотя может использоваться и другой подключаемый модуль; второй фактор является обязательным и использует указанный подключаемый модуль, но может использоваться и другой подключаемый модуль.
    'auth_plugin,' Один или два фактора, где первый фактор должен быть указанным подключаемым модулем; второй фактор является необязательным и может использовать любой подключаемый модуль.
    '*:auth_plugin,*,' Два или три фактора, где первый фактор должен быть указанным подключаемым модулем; второй фактор является обязательным и может использовать любой подключаемый модуль, а третий фактор является необязательным и может использовать любой подключаемый модуль.
    'auth_plugin,auth_plugin,auth_plugin' Три фактора, где все три фактора должны использовать указанные подключаемые модули.

  • authentication_windows_log_level

    Формат командной строки --authentication-windows-log-level=#
    Системная переменная authentication_windows_log_level
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 2
    Минимальное значение 0
    Максимальное значение 4

    Эта переменная доступна только в том случае, если включен подключаемый модуль аутентификации Windows authentication_windows и включен код отладки. См. Раздел 8.4.1.6, «Подключаемая аутентификация Windows».

    Эта переменная устанавливает уровень ведения журнала для подключаемого модуля аутентификации Windows. В следующей таблице показаны допустимые значения.

    Значение Описание
    0 Журналирование отключено
    1 Регистрировать только сообщения об ошибках
    2 Регистрировать сообщения уровня 1 и предупреждения
    3 Регистрировать сообщения уровня 2 и информационные заметки
    4 Регистрировать сообщения уровня 3 и сообщения отладки
  • authentication_windows_use_principal_name

    Формат командной строки --authentication-windows-use-principal-name[={OFF|ON}]
    Системная переменная authentication_windows_use_principal_name
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применимо ли подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    Эта переменная доступна только в том случае, если плагин проверки подлинности Windows authentication_windows включен. См. Раздел 8.4.1.6, «Windows Pluggable Authentication».

    Клиент, который выполняет проверку подлинности с помощью функции InitSecurityContext(), должен предоставить строку, идентифицирующую службу, к которой он подключается (targetName). MySQL использует имя принципала (UPN) учетной записи, под которой работает сервер. UPN имеет вид user_id@computer_name и не нужно регистрировать его нигде, чтобы он использовался. Этот UPN отправляется сервером в начале процесса проверки подлинности.

    Эта переменная управляет тем, отправляет ли сервер UPN в начальном запросе. По умолчанию переменная включена. По соображениям безопасности ее можно отключить, чтобы избежать отправки имени учетной записи сервера клиенту в виде открытого текста. Если переменная отключена, сервер всегда отправляет байт 0x00 в первом запросе, клиент не указывает targetName, и в результате используется аутентификация NTLM.

    Если сервер не может получить свой UPN (что происходит в основном в средах, не поддерживающих аутентификацию Kerberos), UPN не отправляется сервером, и используется аутентификация NTLM.

  • autocommit

    Формат командной строки --autocommit[={OFF|ON}]
    Системная переменная autocommit
    Область действия Глобальная, сеанс
    Динамическая Да
    SET_VAR Применимо ли подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    Режим автоматического подтверждения. Если значение установлено в 1, все изменения в таблице вступают в силу немедленно. Если значение установлено в 0, необходимо использовать COMMIT для подтверждения транзакции или ROLLBACK для ее отмены. Если autocommit равно 0, а затем его изменяют на 1, MySQL выполняет автоматическое COMMIT любой открытой транзакции. Другой способ начать транзакцию — использовать оператор START TRANSACTION или BEGIN. См. Раздел 15.3.1, «Операторы START TRANSACTION, COMMIT и ROLLBACK».

    По умолчанию подключения клиентов начинаются со значением autocommit, равным 1. Чтобы клиенты начинали с значения по умолчанию 0, установите значение глобальной переменной autocommit, запустив сервер с опцией --autocommit=0. Чтобы установить переменную с помощью файла конфигурации, добавьте следующие строки:

    [mysqld]
    autocommit=0
    
  • automatic_sp_privileges

    Формат командной строки --automatic-sp-privileges[={OFF|ON}]
    Системная переменная automatic_sp_privileges
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо ли подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    Когда переменная имеет значение 1 (по умолчанию), сервер автоматически предоставляет привилегии EXECUTE и ALTER ROUTINE создателю хранимой процедуры, если пользователь уже не имеет права на выполнение и изменение или удаление процедуры. (Привилегия ALTER ROUTINE требуется для удаления процедуры). Сервер также автоматически отнимает эти привилегии у создателя при удалении процедуры. Если automatic_sp_privileges равно 0, сервер не добавляет и не отнимает эти привилегии автоматически.

    Создателем процедуры является учетная запись, используемая для выполнения оператора CREATE. Это может не совпадать с учетной записью, указанной как DEFINER в определении процедуры.

    При запуске mysqld с параметром --skip-new, automatic_sp_privileges устанавливается в OFF.

    См. также Раздел 27.2.2, «Хранимые процедуры и привилегии MySQL».

  • auto_generate_certs

    Формат командной строки --auto-generate-certs[={OFF|ON}]
    Системная переменная auto_generate_certs
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применимо ли подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    Эта переменная управляет тем, генерирует ли сервер автоматически файлы ключей и сертификатов SSL в каталоге данных, если они еще не существуют.

    При запуске сервер автоматически генерирует файлы сертификатов и ключей SSL для сервера и клиента в каталоге данных, если системная переменная auto_generate_certs включена, а файлы SSL для сервера отсутствуют в каталоге данных. Эти сертификаты всегда генерируются в таких случаях, независимо от значений других параметров TLS. Эти сертификаты и ключи обеспечивают безопасные подключения клиентов с использованием SSL; см. Раздел 8.3.1, «Настройка MySQL для использования шифрованных подключений».

    Дополнительную информацию об автоматическом создании файлов SSL, включая имена файлов и характеристики, см. в Разделе 8.3.3.1, «Создание сертификатов SSL и RSA с помощью MySQL»

    Системные переменные sha256_password_auto_generate_rsa_keys и caching_sha2_password_auto_generate_rsa_keys связаны, но управляют автоматическим созданием файлов пар ключей RSA, необходимых для безопасного обмена паролями с использованием RSA по незащищенным каналам.

  • back_log

    Формат командной строки --back-log=#
    Переменная системы back_log
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию -1 (указывает на автоматический размер; не присваивайте это значение)
    Минимальное значение 1
    Максимальное значение 65535

    Количество ожидающих запросов подключений, которые может иметь MySQL. Это становится актуальным, когда основной поток MySQL получает очень много запросов подключений за очень короткий промежуток времени. Затем основному потоку требуется некоторое время (хотя и очень малое) для проверки подключения и запуска нового потока. Значение back_log указывает, сколько запросов может быть размещено в очереди за это короткое время, прежде чем MySQL временно перестанет отвечать на новые запросы. Вам необходимо увеличить это значение только в том случае, если ожидается большое количество подключений за короткий период времени.

    Другими словами, это значение — размер очереди приема для входящих подключений TCP/IP. Ваша операционная система имеет собственное ограничение на размер этой очереди. Более подробную информацию можно найти в руководстве к системному вызову Unix listen(). Проверьте документацию вашей ОС для определения максимального значения для этой переменной. back_log не может быть установлено выше предела вашей операционной системы.

    Значение по умолчанию — значение max_connections, что позволяет регулировать ожидаемую очередь в соответствии с максимальным разрешённым количеством подключений.

  • basedir

    Формат командной строки --basedir=dir_name
    Переменная системы basedir
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Имя каталога
    Значение по умолчанию parent of mysqld installation directory

    Путь к основному каталогу установки MySQL.

  • big_tables

    Формат командной строки --big-tables[={OFF|ON}]
    Переменная системы big_tables
    Область действия Глобальная, сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    При включении сервер сохраняет все временные таблицы на диске, а не в памяти. Это предотвращает большинство ошибок The table tbl_name is full для операций SELECT, требующих большой временной таблицы, но также замедляет запросы, для которых временные таблицы в памяти были бы достаточны.

    Значение по умолчанию для новых подключений — OFF (использовать временные таблицы в памяти). Обычно включать эту переменную не требуется. Когда временные внутренние таблицы в памяти управляются движком хранения TempTable (по умолчанию), и превышен максимальный объём памяти, который может быть занят движком хранения TempTable, движок хранения TempTable начинает сохранять данные во временные файлы на диске. При управлении временными таблицами в памяти движком хранения MEMORY временные таблицы автоматически преобразуются в таблицы на диске по мере необходимости. Дополнительную информацию см. в Разделе 10.4.4, «Использование внутренних временных таблиц в MySQL».

  • bind_address

    Формат командной строки --bind-address=addr
    Системная переменная bind_address
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется ли подсказка Нет
    Тип Строка
    Значение по умолчанию *

    Сервер MySQL прослушивает один или несколько сетевых сокетов для подключений TCP/IP. Каждый сокет привязан к одному адресу, но один адрес может быть привязан к нескольким сетевым интерфейсам. Чтобы указать, как сервер должен прослушивать подключения TCP/IP, установите системную переменную bind_address при запуске сервера. Сервер также имеет системную переменную admin_address, которая позволяет устанавливать административные подключения на выделенном интерфейсе. См. Раздел 7.1.12.1, «Интерфейсы подключения».

    Если указана bind_address, она принимает список одного или нескольких значений адреса, каждое из которых может указывать один IP-адрес или имя хоста без подстановочных знаков. Каждый адрес может содержать спецификатор сетевого пространства имён. Если указан только один адрес, он может использовать один из форматов адресов с подстановкой, которые позволяют прослушивать подключения на нескольких сетевых интерфейсах (*, 0.0.0.0 или ::). Несколько адресов разделяются запятыми. При указании нескольких значений каждое значение должно указывать один IP-адрес (IPv4 или IPv6) или имя хоста без подстановочных знаков, и не допускаются форматы адресов с подстановкой (*, 0.0.0.0 или ::).

    IP-адреса могут быть указаны как IPv4 или IPv6 адреса. Для любого значения, являющегося именем хоста, сервер разрешает имя до IP-адреса и привязывается к этому адресу. Если имя хоста разрешается до нескольких IP-адресов, сервер использует первый IPv4 адрес, если он есть, или первый IPv6 адрес в противном случае.

    Сервер обрабатывает различные типы адресов следующим образом:

    • Если адрес равен *, сервер принимает подключения TCP/IP на всех IPv4 интерфейсах хоста сервера и, если хост сервера поддерживает IPv6, на всех IPv6 интерфейсах. Используйте этот адрес для разрешения подключений IPv4 и IPv6 на всех интерфейсах сервера. Это значение по умолчанию. Если переменная указывает список нескольких значений, это значение не разрешается.

    • Если адрес равен 0.0.0.0, сервер принимает подключения TCP/IP на всех IPv4 интерфейсах хоста сервера. Если переменная указывает список нескольких значений, это значение не разрешается.

    • Если адрес равен ::, сервер принимает подключения TCP/IP на всех IPv4 и IPv6 интерфейсах хоста сервера. Если переменная указывает список нескольких значений, это значение не разрешается.

    • Если адрес — это IPv4-адрес, отображаемый в IPv6 формате, сервер принимает TCP/IP подключения для этого адреса, как в IPv4, так и в IPv6 формате. Например, если сервер привязан к ::ffff:127.0.0.1, клиенты могут подключаться с помощью --host=127.0.0.1 или --host=::ffff:127.0.0.1.

    • Если адрес — это “обычный” IPv4 или IPv6 адрес (такой как 127.0.0.1 или ::1), сервер принимает TCP/IP подключения только для указанного IPv4 или IPv6 адреса.

    Эти правила применяются к указанию сетевого пространства имён для адреса:

    • Сетевое пространство имён может быть указано для IP-адреса или имени хоста.

    • Сетевое пространство имён не может быть указано для IP-адреса с подстановкой.

    • Для данного адреса сетевое пространство имён является необязательным. Если указано, оно должно быть указано как суффикс /ns непосредственно после адреса.

    • Адрес без суффикса /ns использует глобальное пространство имён хост-системы. Таким образом, глобальное пространство имён является значением по умолчанию.

    • Адрес со суффиксом /ns использует пространство имён с именем ns.

    • Хост-система должна поддерживать сетевые пространства имён, и каждое именованное пространство имён должно быть предварительно настроено. Указание несуществующего пространства имён приводит к ошибке.

    • Если значение переменной указывает несколько адресов, оно может включать адреса в глобальном пространстве имён, в именованных пространствах имён или их смесь.

    Дополнительную информацию о сетевых пространствах имён см. в Разделе 7.1.14, «Поддержка сетевых пространств имён».

    Если привязка к любому адресу не удаётся, сервер выводит ошибку и не запускается.

    Примеры:

    • bind_address=*

      Сервер прослушивает все IPv4 или IPv6 адреса, как указано подстановкой *.

    • bind_address=198.51.100.20

      Сервер прослушивает только по адресу 198.51.100.20 IPv4.

    • bind_address=198.51.100.20,2001:db8:0:f101::1

      Сервер прослушивает по адресу 198.51.100.20 IPv4 и адресу 2001:db8:0:f101::1 IPv6.

    • bind_address=198.51.100.20,*

      Это приводит к ошибке, потому что подстановочные адреса не разрешены, когда bind_address назначает список нескольких значений.

    • bind_address=198.51.100.20/red,2001:db8:0:f101::1/blue,192.0.2.50

      Сервер прослушивает по адресу 198.51.100.20 IPv4 в пространстве имён red, адресу 2001:db8:0:f101::1 IPv6 в пространстве имён blue и адресу 192.0.2.50 IPv4 в глобальном пространстве имён.

    Когда bind_address назначает одно значение (с подстановкой или без), сервер прослушивает по одному сокету, который для адреса с подстановкой может быть привязан к нескольким сетевым интерфейсам. Когда bind_address назначает список нескольких значений, сервер прослушивает по одному сокету на каждое значение, привязывая каждый сокет к одному сетевому интерфейсу. Количество сокетов линейно зависит от количества указанных значений. В зависимости от эффективности операционной системы при приёме подключений, длинные списки значений могут привести к потере производительности при приёме TCP/IP подключений.

    Поскольку для прослушивающих сокетов и файлов сетевых пространств имён выделены дескрипторы файлов, может потребоваться увеличить системную переменную open_files_limit.

    Если вы намерены привязать сервер к определённому адресу, убедитесь, что в таблице mysql.user есть учётная запись с административными правами, которую можно использовать для подключения к этому адресу. В противном случае вы не сможете остановить сервер. Например, если вы привяжете сервер к *, вы можете подключиться к нему с помощью всех существующих учётных записей. Но если вы привяжете сервер к ::1, он принимает подключения только по этому адресу. В этом случае, сначала убедитесь, что учётная запись 'root'@'::1' присутствует в таблице mysql.user, чтобы вы всё ещё могли подключиться к серверу для его остановки.

  • block_encryption_mode

    Формат командной строки --block-encryption-mode=#
    Системная переменная block_encryption_mode
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Строка
    Значение по умолчанию aes-128-ecb

    Эта переменная управляет режимом шифрования блоков для блочных алгоритмов, таких как AES. Она влияет на шифрование для AES_ENCRYPT() и AES_DECRYPT().

    block_encryption_mode принимает значение в формате aes-keylen-mode, где keylen — длина ключа в битах, а mode — режим шифрования. Значение не чувствительно к регистру. Разрешённые значения keylen — 128, 192 и 256. Разрешённые значения mode — ECB, CBC, CFB1, CFB8, CFB128 и OFB.

    Например, эта команда заставляет функции шифрования AES использовать длину ключа 256 бит и режим CBC:

    SET block_encryption_mode = 'aes-256-cbc';
    

    Возникает ошибка при попытке установить block_encryption_mode на значение, содержащее недопустимую длину ключа или режим, который не поддерживается библиотекой SSL.

  • build_id

    Системная переменная build_id
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Специфично для платформы Linux

    Это 160-битная SHA1 подпись, которая генерируется компоновщиком при компиляции сервера на системах Linux с помощью -DWITH_BUILD_ID=ON (включено по умолчанию) и преобразуется в шестнадцатеричную строку. Это значение только для чтения служит уникальным идентификатором сборки и записывается в лог сервера при запуске.

    build_id не поддерживается на платформах, отличных от Linux.

  • bulk_insert_buffer_size

    Формат командной строки --bulk-insert-buffer-size=#
    Системная переменная bulk_insert_buffer_size
    Область видимости Глобальная, Сессия
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Целое число
    Значение по умолчанию 8388608
    Минимальное значение 0
    Максимальное значение (64-битные платформы) 18446744073709551615
    Максимальное значение (32-битные платформы) 4294967295
    Единица измерения байт/поток

    MyISAM использует специальный древовидный кэш для ускорения массовой вставки для INSERT ... SELECT, INSERT ... VALUES (...), (...), ... и LOAD DATA при добавлении данных в незаполненные таблицы. Эта переменная ограничивает размер дерева кэша в байтах на поток. Установка значения 0 отключает эту оптимизацию. Значение по умолчанию — 8 МБ.

    Установка значения сессии этой системной переменной является ограниченной операцией. Пользователь сессии должен иметь права, достаточные для установки ограниченных переменных сессии. См. Раздел 7.1.9.1, «Привилегии системных переменных».

  • caching_sha2_password_digest_rounds

    Формат командной строки --caching-sha2-password-digest-rounds=#
    Системная переменная caching_sha2_password_digest_rounds
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 5000
    Минимальное значение 5000
    Максимальное значение 4095000

    Количество раундов хеширования, используемых подключаемым модулем аутентификации caching_sha2_password для хранения паролей.

    Увеличение количества раундов хеширования выше значения по умолчанию приводит к снижению производительности, которое коррелирует с величиной увеличения:

    • Создание учетной записи, использующей подключаемый модуль caching_sha2_password, не влияет на сеанс клиента, в котором создается учетная запись, но сервер должен выполнить раунды хеширования для завершения операции.

    • Для клиентских подключений, использующих учетную запись, сервер должен выполнить раунды хеширования и сохранить результат в кэше. Результатом является более длительное время входа для первого клиентского подключения, но не для последующих подключений. Это поведение происходит после каждого перезапуска сервера.

  • caching_sha2_password_auto_generate_rsa_keys

    Формат командной строки --caching-sha2-password-auto-generate-rsa-keys[={OFF|ON}]
    Системная переменная caching_sha2_password_auto_generate_rsa_keys
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Логическое
    Значение по умолчанию ON

    Сервер использует эту переменную для определения того, следует ли автоматически генерировать файлы пар закрытых/открытых ключей RSA в каталоге данных, если они еще не существуют.

    При запуске сервер автоматически генерирует файлы пар закрытых/открытых ключей RSA в каталоге данных, если выполнены все следующие условия: системная переменная sha256_password_auto_generate_rsa_keys или caching_sha2_password_auto_generate_rsa_keys включена; параметры RSA не указаны; файлы RSA отсутствуют в каталоге данных. Эти файлы пар ключей обеспечивают безопасный обмен паролями с использованием RSA по незашифрованным соединениям для учетных записей, аутентифицированных с помощью sha256_password (устаревший) или caching_sha2_password подключаемого модуля; см. Раздел 8.4.1.3, «Подключаемая аутентификация SHA-256» и Раздел 8.4.1.2, «Подключаемая аутентификация Caching SHA-2».

    Для получения дополнительной информации об автоматическом создании файлов RSA, включая имена файлов и характеристики, см. Раздел 8.3.3.1, «Создание сертификатов и ключей SSL и RSA с помощью MySQL»

    Системная переменная auto_generate_certs связана, но управляет автоматическим созданием файлов сертификатов и ключей SSL, необходимых для безопасных соединений с использованием SSL.

  • caching_sha2_password_private_key_path

    Формат командной строки --caching-sha2-password-private-key-path=file_name
    Системная переменная caching_sha2_password_private_key_path
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Имя файла
    Значение по умолчанию private_key.pem

    Эта переменная указывает имя пути файла закрытого ключа RSA для подключаемого модуля аутентификации caching_sha2_password. Если файл указан как относительный путь, он интерпретируется относительно каталога данных сервера. Файл должен быть в формате PEM.

    Важно

    Поскольку этот файл хранит закрытый ключ, его режим доступа должен быть ограничен таким образом, чтобы только сервер MySQL мог его читать.

    Для получения информации о caching_sha2_password, см. Раздел 8.4.1.2, «Подключаемая аутентификация Caching SHA-2».

  • caching_sha2_password_public_key_path

    Формат командной строки --caching-sha2-password-public-key-path=file_name
    Системная переменная caching_sha2_password_public_key_path
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Имя файла
    Значение по умолчанию public_key.pem

    Эта переменная указывает имя пути файла открытого ключа RSA для подключаемого модуля аутентификации caching_sha2_password. Если файл указан как относительный путь, он интерпретируется относительно каталога данных сервера. Файл должен быть в формате PEM.

    Для получения информации о caching_sha2_password, включая информацию о том, как клиенты запрашивают открытый ключ RSA, см. Раздел 8.4.1.2, «Подключаемая аутентификация Caching SHA-2».

  • character_set_client

    Системная переменная character_set_client
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию utf8mb4

    Кодировка символов для запросов, поступающих от клиента. Значение этой переменной для сессии устанавливается с использованием кодировки, запрошенной клиентом при подключении к серверу. (Многие клиенты поддерживают опцию --default-character-set для явного указания кодировки. См. также Раздел 12.4, «Кодировки и сортировки соединений».) Глобальное значение переменной используется для установки значения сессии в тех случаях, когда запрашиваемое клиентом значение неизвестно или недоступно, или сервер настроен на игнорирование запросов клиента. Это может произойти, когда клиент запрашивает кодировку, неизвестную серверу, например, когда клиент с поддержкой японского языка запрашивает sjis при подключении к серверу, не настроенному с поддержкой sjis.

    Некоторые кодировки не могут использоваться в качестве кодировки клиента. Попытка использовать их в качестве значения character_set_client приводит к ошибке. См. Недопустимые кодировки клиента.

  • character_set_connection

    Системная переменная character_set_connection
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию utf8mb4

    Кодировка символов, используемая для литералов, указанных без спецификатора кодировки, и для преобразования числа в строку. Для получения информации о спецификаторах см. Раздел 12.3.8, «Спецификаторы кодировки символов».

  • character_set_database

    Системная переменная character_set_database
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию utf8mb4
    Примечание Этот параметр является динамическим, но должен устанавливаться только сервером. Не следует устанавливать эту переменную вручную.

    Кодировка символов, используемая базой данных по умолчанию. Сервер устанавливает эту переменную всякий раз, когда меняется база данных по умолчанию. Если базы данных по умолчанию нет, переменная имеет то же значение, что и character_set_server.

    Установка значения сессии этой системной переменной является ограниченной операцией. Пользователь сессии должен иметь права, достаточные для установки ограниченных переменных сессии. См. Раздел 7.1.9.1, «Права на системные переменные».

    Глобальные системные переменные character_set_database и collation_database устарели; ожидается, что они будут удалены в будущей версии MySQL.

    Присваивание значения системным переменным сессии character_set_database и collation_database устарело и приводит к предупреждению. Ожидается, что переменные сессии станут доступными только для чтения (и присваивания им будут вызывать ошибку) в будущей версии MySQL, в которой останется возможность доступа к переменным сессии для определения кодировки и сортировки базы данных по умолчанию.

  • character_set_filesystem

    Формат командной строки --character-set-filesystem=name
    Системная переменная character_set_filesystem
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию binary

    Кодировка файловой системы. Эта переменная используется для интерпретации строковых литералов, которые ссылаются на имена файлов, например, в операторах LOAD DATA и SELECT ... INTO OUTFILE и функции LOAD_FILE(). Такие имена файлов преобразуются из character_set_client в character_set_filesystem перед попыткой открытия файла. Значение по умолчанию — binary, что означает, что преобразование не выполняется. Для систем, на которых разрешены многобайтовые имена файлов, может быть более подходящим другое значение. Например, если система представляет имена файлов с помощью UTF-8, установите character_set_filesystem в 'utf8mb4'.

    Установка значения сессии этой системной переменной является ограниченной операцией. Пользователь сессии должен иметь права, достаточные для установки ограниченных переменных сессии. См. Раздел 7.1.9.1, «Права на системные переменные».

  • character_set_results

    Системная переменная character_set_results
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию utf8mb4

    Кодировка символов, используемая для возврата результатов запроса клиенту. Это включает в себя данные результатов, такие как значения столбцов, метаданные результатов, такие как имена столбцов, и сообщения об ошибках.

  • character_set_server

    Формат командной строки --character-set-server=name
    Системная переменная character_set_server
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию utf8mb4

    Кодировка по умолчанию сервера. См. Раздел 12.15, «Настройка кодировки символов». Если вы устанавливаете эту переменную, вам также следует установить collation_server для указания сортировки для кодировки.

  • character_set_system

    Системная переменная character_set_system
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию utf8mb3

    Кодировка символов, используемая сервером для хранения идентификаторов. Значение всегда равно utf8mb3.

  • character_sets_dir

    Формат командной строки --character-sets-dir=dir_name
    Системная переменная character_sets_dir
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Имя каталога

    Каталог, в котором установлены наборы символов. См. Раздел 12.15, «Настройка наборов символов».

  • check_proxy_users

    Формат командной строки --check-proxy-users[={OFF|ON}]
    Системная переменная check_proxy_users
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Некоторые плагины аутентификации реализуют отображение пользователей-прокси для себя (например, плагины аутентификации PAM и Windows). Другие плагины аутентификации по умолчанию не поддерживают пользователей-прокси. Из них некоторые могут запросить, чтобы сервер MySQL сам сопоставлял пользователей-прокси в соответствии с предоставленными привилегиями прокси: mysql_native_password (устаревшее), sha256_password (устаревшее).

    Если системная переменная check_proxy_users включена, сервер выполняет отображение пользователей-прокси для любых плагинов аутентификации, которые делают такой запрос. Возможно, также потребуется включить плагин-специфичные системные переменные, чтобы воспользоваться поддержкой отображения серверных пользователей-прокси:

    • Для устаревшего плагина mysql_native_password (устаревшее) включите mysql_native_password_proxy_users.

    • Для плагина sha256_password (устаревшее) включите sha256_password_proxy_users.

    Сведения о пользователях-прокси см. в Разделе 8.2.19, «Пользователи-прокси».

  • collation_connection

    Системная переменная collation_connection
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Строка

    Набор символов сопоставления подключения. collation_connection важен для сравнения строковых литералов. Для сравнения строк со значениями столбцов collation_connection значения не имеет, поскольку столбцы имеют собственное сопоставление, которое имеет более высокую приоритет сопоставления (см. Раздел 12.8.4, «Сопоставимость сопоставления в выражениях»).

    Использование имени пользовательского сопоставления для этой переменной вызывает предупреждение.

  • collation_database

    Системная переменная collation_database
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Строка
    Значение по умолчанию utf8mb4_0900_ai_ci
    Примечание Этот параметр динамический, но должен устанавливаться только сервером. Вы не должны вручную устанавливать эту переменную.

    Сопоставление, используемое для базы данных по умолчанию. Сервер устанавливает эту переменную всякий раз, когда изменяется база данных по умолчанию. Если базы данных по умолчанию нет, переменная имеет то же значение, что и collation_server.

    Глобальные системные переменные character_set_database и collation_database устарели; ожидается, что они будут удалены в будущих версиях MySQL.

    Назначение значения сеансовой системной переменной character_set_database и collation_database устарело, и назначения приводят к предупреждению. Ожидается, что сеансовые переменные станут только для чтения (и назначения приведут к ошибке) в будущей версии MySQL, в которой по-прежнему будет возможность получить доступ к сеансовым переменным для определения набора символов и сопоставления базы данных по умолчанию.

    Использование имени пользовательского сопоставления для collation_database вызывает предупреждение.

  • collation_server

    Формат командной строки --collation-server=name
    Системная переменная collation_server
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Строка
    Значение по умолчанию utf8mb4_0900_ai_ci

    Сопоставление по умолчанию сервера. См. Раздел 12.15, «Настройка наборов символов».

    Установка этого значения на имя пользовательского сопоставления вызывает предупреждение.

  • completion_type

    Формат командной строки --completion-type=#
    Системная переменная completion_type
    Область действия Глобальная, Сеанс
    Динамическая Да
    Применяется ли подсказка SET_VAR Нет
    Тип Перечисление
    Значение по умолчанию NO_CHAIN
    Допустимые значения

    NO_CHAIN

    CHAIN

    RELEASE

    0

    1

    2

    Тип завершения транзакции. Эта переменная может принимать значения, показанные в следующей таблице. Переменную можно задать, используя либо имена значений, либо соответствующие целые значения.

    Значение Описание
    NO_CHAIN (или 0) COMMIT и ROLLBACK не затрагиваются. Это значение по умолчанию.
    CHAIN (или 1) COMMIT и ROLLBACK эквивалентны COMMIT AND CHAIN и ROLLBACK AND CHAIN соответственно. (Новая транзакция начинается сразу же с тем же уровнем изоляции, что и только что завершённая транзакция.)
    RELEASE (или 2) COMMIT и ROLLBACK эквивалентны COMMIT RELEASE и ROLLBACK RELEASE соответственно. (Сервер отключается после завершения транзакции.)

    completion_type влияет на транзакции, которые начинаются с START TRANSACTION или BEGIN и заканчиваются с COMMIT или ROLLBACK. Он не применяется к неявным подтверждениям, возникающим в результате выполнения операторов, перечисленных в Разделе 15.3.3, «Операторы, вызывающие неявное подтверждение». Он также не применяется к XA COMMIT, XA ROLLBACK, или когда autocommit=1.

  • component_scheduler.enabled

    Формат командной строки --component-scheduler.enabled[=value]
    Системная переменная component_scheduler.enabled
    Область действия Глобальная
    Динамическая Да
    Применяется ли подсказка SET_VAR Нет
    Тип Булево
    Значение по умолчанию ON

    При установке в значение OFF при запуске фоновый поток не запускается. Задачи всё ещё могут быть запланированы, но они не выполняются, пока component_scheduler не будет включено. При установке в значение ON при запуске компонент полностью функционирует.

    Также можно установить значение динамически, чтобы получить следующие эффекты:

    • ON запускает фоновый поток, который начинает обслуживание очереди сразу.

    • OFF сигнализирует о завершении фонового потока, который ожидает его окончания. Фоновый поток проверяет флаг завершения перед доступом к очереди, чтобы проверить наличие задач для выполнения.

  • concurrent_insert

    Формат командной строки --concurrent-insert[=value]
    Системная переменная concurrent_insert
    Область действия Глобальная
    Динамическая Да
    Применяется ли подсказка SET_VAR Нет
    Тип Перечисление
    Значение по умолчанию AUTO
    Допустимые значения

    NEVER

    AUTO

    ALWAYS

    0

    1

    2

    Если установлено значение AUTO (значение по умолчанию), MySQL разрешает выполнение операторов INSERT и SELECT одновременно для таблиц MyISAM, которые не имеют свободных блоков посередине файла данных.

    Эта переменная может принимать значения, показанные в следующей таблице. Переменную можно задать, используя либо имена значений, либо соответствующие целые значения.

    Значение Описание
    NEVER (или 0) Отключает одновременные вставки
    AUTO (или 1) (По умолчанию) Включает одновременные вставки для таблиц MyISAM, которые не имеют пробелов
    ALWAYS (или 2) Включает одновременные вставки для всех таблиц MyISAM, даже тех, которые имеют пробелы. Для таблицы с пробелом новые строки вставляются в конец таблицы, если она используется другим потоком. В противном случае MySQL получает обычный блокирующий замок записи и вставляет строку в пробел.

    Если вы запускаете mysqld с --skip-new, concurrent_insert установлено в значение NEVER.

    См. также Раздел 10.11.3, «Одновременные вставки».

  • connect_timeout

    Формат командной строки --connect-timeout=#
    Системная переменная connect_timeout
    Область действия Глобальная
    Динамическая Да
    Применяется ли подсказка SET_VAR Нет
    Тип Целое число
    Значение по умолчанию 10
    Минимальное значение 2
    Максимальное значение 31536000
    Единица измерения секунды

    Количество секунд, которое сервер mysqld ожидает пакет подключения перед ответом Bad handshake. Значение по умолчанию составляет 10 секунд.

    Увеличение значения connect_timeout может помочь, если клиенты часто сталкиваются с ошибками вида Lost connection to MySQL server at 'XXX', system error: errno.

  • connection_memory_chunk_size

    Формат командной строки --connection-memory-chunk-size=#
    Системная переменная connection_memory_chunk_size
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Целое число
    Значение по умолчанию 8192
    Минимальное значение 0
    Максимальное значение 536870912
    Единица измерения байты

    Установите размер фрагмента для обновлений глобального счётчика использования памяти Global_connection_memory. Переменная состояния обновляется только тогда, когда общее потребление памяти всеми пользовательскими подключениями изменяется на значение, превышающее это количество. Отключить обновления, установив connection_memory_chunk_size = 0.

    Расчёт памяти не включает память, используемую системными пользователями, такими как пользователь MySQL root. Также не учитывается память, используемая буфером пула InnoDB.

    Для установки этой переменной необходимо иметь привилегию SYSTEM_VARIABLES_ADMIN или SUPER.

  • connection_memory_limit

    Формат командной строки --connection-memory-limit=#
    Системная переменная connection_memory_limit
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Целое число
    Значение по умолчанию 18446744073709551615
    Минимальное значение 2097152
    Максимальное значение 18446744073709551615
    Единица измерения байты

    Установите максимальное количество памяти, которое может использовать одно пользовательское подключение. Если какое-либо пользовательское подключение использует больше этого значения, все запросы от этого подключения отклоняются, включая любые запросы, которые в данный момент выполняются.

    Ограничение, установленное этой переменной, не применяется к системным пользователям или к учётной записи MySQL root. Также не учитывается память, используемая буфером пула InnoDB.

    Для установки этой переменной необходимо иметь привилегию SYSTEM_VARIABLES_ADMIN или SUPER.

  • core_file

    Системная переменная core_file
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применимо Нет
    Тип Булево
    Значение по умолчанию OFF

    Флаг записи файла core при неожиданном завершении работы сервера. Эта переменная устанавливается параметром --core-file.

  • create_admin_listener_thread

    Формат командной строки --create-admin-listener-thread[={OFF|ON}]
    Системная переменная create_admin_listener_thread
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применимо Нет
    Тип Булево
    Значение по умолчанию OFF

    Использовать ли отдельный поток прослушивания для подключений клиентов на административном сетевом интерфейсе (см. Раздел 7.1.12.1, «Интерфейсы подключения»). Значение по умолчанию OFF; то есть поток управления обычными подключениями на главном интерфейсе также обрабатывает подключения к административному интерфейсу.

    В зависимости от таких факторов, как тип платформы и рабочая нагрузка, вы можете обнаружить, что одно значение этой переменной обеспечивает лучшую производительность, чем другое.

    Установка create_admin_listener_thread не оказывает никакого эффекта, если admin_address не указан, поскольку в этом случае сервер не поддерживает административный сетевой интерфейс.

  • cte_max_recursion_depth

    Формат командной строки --cte-max-recursion-depth=#
    Системная переменная cte_max_recursion_depth
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Целое число
    Значение по умолчанию 1000
    Минимальное значение 0
    Максимальное значение 4294967295

    Максимальная глубина рекурсии выражения общего вида (CTE). Сервер завершает выполнение любого CTE, который выполняет рекурсию на большее количество уровней, чем значение этой переменной. Дополнительную информацию см. в разделе Ограничение рекурсии выражений общего вида.

  • datadir

    Формат командной строки --datadir=dir_name
    Системная переменная datadir
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применимо Нет
    Тип Имя каталога

    Путь к каталогу данных сервера MySQL. Относительные пути разрешаются относительно текущего каталога. Если ожидается, что сервер будет запускаться автоматически (то есть в контекстах, где текущий каталог заранее неизвестен), лучше указать значение datadir как абсолютный путь.

  • debug

    Формат командной строки --debug[=debug_options]
    Системная переменная debug
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Строка
    Значение по умолчанию (Unix) d:t:i:o,/tmp/mysqld.trace
    Значение по умолчанию (Windows) d:t:i:O,\mysqld.trace

    Эта переменная указывает текущие настройки отладки. Она доступна только для серверов, скомпилированных с поддержкой отладки. Начальное значение взято из значения экземпляров параметра --debug, указанного при запуске сервера. Глобальные и сеансовые значения могут быть установлены во время выполнения.

    Установка сеансового значения этой системной переменной — ограниченная операция. Пользователь сеанса должен обладать достаточными привилегиями для установки ограниченных сеансовых переменных. См. Раздел 7.1.9.1, «Привилегии на системные переменные».

    Присвоение значения, начинающегося с + или -, приводит к добавлению или вычитанию значения из текущего значения:

    mysql> SET debug = 'T';
    mysql> SELECT @@debug;
    +---------+
    | @@debug |
    +---------+
    | T       |
    +---------+
    
    mysql> SET debug = '+P';
    mysql> SELECT @@debug;
    +---------+
    | @@debug |
    +---------+
    | P:T     |
    +---------+
    
    mysql> SET debug = '-P';
    mysql> SELECT @@debug;
    +---------+
    | @@debug |
    +---------+
    | T       |
    +---------+
    

    Дополнительную информацию см. в Разделе 7.9.4, «Пакет DBUG».

END_OF_DOCUMENT_MARKER
  • debug_sync

    Переменная сервера debug_sync
    Область действия Сеанс
    Динамическая Да
    SET_VAR Применимо к подсказке Нет
    Тип Строка

    Эта переменная — интерфейс для средства отладки синхронизации. Для использования отладки синхронизации необходимо настроить MySQL с опцией -DWITH_DEBUG=ON CMake (см. Раздел 2.8.7, «Опции конфигурации исходного кода MySQL»); в противном случае эта системная переменная недоступна.

    Глобальное значение переменной — только для чтения и указывает, включено ли средство. По умолчанию отладка синхронизации отключена, и значение debug_sync равно OFF. Если сервер запущен с --debug-sync-timeout=N, где N — значение таймаута, большее 0, отладка синхронизации включена, а значение debug_sync равно ON - current signal, за которым следует имя сигнала. Кроме того, N становится значением таймаута по умолчанию для отдельных точек синхронизации.

    Сеансовое значение может быть прочитано любым пользователем и имеет то же значение, что и глобальная переменная. Значение сеанса можно задать для управления точками синхронизации.

    Установка сеансового значения этой системной переменной — ограниченная операция. Пользователь сеанса должен иметь достаточные привилегии для установки ограниченных сеансовых переменных. См. Раздел 7.1.9.1, «Привилегии на системные переменные».

    Описание средства отладки синхронизации и использование точек синхронизации см. в MySQL Internals: Test Synchronization.

  • default_collation_for_utf8mb4

    Переменная сервера default_collation_for_utf8mb4
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применимо к подсказке Нет
    Тип Перечисление
    Значение по умолчанию utf8mb4_0900_ai_ci
    Допустимые значения

    utf8mb4_0900_ai_ci

    utf8mb4_general_ci

    Важно

    Системная переменная default_collation_for_utf8mb4 предназначена только для внутреннего использования MySQL Replication.

    Эта переменная устанавливается сервером в качестве значения по умолчанию для кодировки utf8mb4 набора символов. Значение переменной дублируется со источника на реплику, чтобы реплика могла правильно обрабатывать данные, полученные с источника, имеющего другую кодировку по умолчанию для utf8mb4. Эта переменная в основном предназначена для поддержки репликации с MySQL 5.7 или более раннего сервера-источника репликации на более поздний сервер репликации MySQL или групповой репликации с узлом MySQL 5.7 в качестве первичного узла и одним или несколькими вторичными узлами MySQL 8.0 или более поздних версий. Значение по умолчанию для utf8mb4 в MySQL 5.7 равно utf8mb4_general_ci, но utf8mb4_0900_ai_ci в более поздних версиях. Переменная отсутствует в выпусках до MySQL 8.0, поэтому, если реплика не получает значения для переменной, она предполагает, что источник — из более ранней версии и устанавливает значение на предыдущее значение по умолчанию utf8mb4_general_ci.

    Кодировка по умолчанию utf8mb4 используется в следующих операциях:

    • SHOW COLLATION и SHOW CHARACTER SET.

    • CREATE TABLE и ALTER TABLE с предложением CHARACTER SET utf8mb4 без предложения COLLATION, либо для набора символов таблицы, либо для набора символов столбца.

    • CREATE DATABASE и ALTER DATABASE с предложением CHARACTER SET utf8mb4 без предложения COLLATION.

    • Любая операция, содержащая строковую литерал вида _utf8mb4'some text' без предложения COLLATE.

    См. также Раздел 12.9, «Поддержка Unicode».

  • default_password_lifetime

    Формат командной строки --default-password-lifetime=#
    Переменная сервера default_password_lifetime
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо к подсказке Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 65535
    Единица измерения дней

    Эта переменная определяет глобальную политику автоматического истечения срока действия паролей. Значение по умолчанию default_password_lifetime равно 0, что отключает автоматическое истечение срока действия паролей. Если значение default_password_lifetime — положительное целое число N, оно указывает допустимый срок действия паролей; пароли должны быть изменены каждые N дней.

    Глобальную политику истечения срока действия паролей можно переопределить для отдельных учетных записей, используя опцию истечения срока действия пароля в операциях CREATE USER и ALTER USER. См. Раздел 8.2.15, «Управление паролями».

  • default_storage_engine

    Формат командной строки --default-storage-engine=name
    Переменная сервера default_storage_engine
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применимо к подсказке Нет
    Тип Перечисление
    Значение по умолчанию InnoDB

    Двигатель хранения по умолчанию для таблиц. См. Глава 18, Альтернативные движки хранения. Эта переменная устанавливает движок хранения только для постоянных таблиц. Чтобы установить движок хранения для TEMPORARY таблиц, установите системную переменную default_tmp_storage_engine.

    Чтобы увидеть доступные и включённые движки хранения, используйте операцию SHOW ENGINES или запросите таблицу INFORMATION_SCHEMA ENGINES.

    Если вы отключаете движок хранения по умолчанию при запуске сервера, вы должны установить движок по умолчанию как для постоянных, так и для TEMPORARY таблиц, в противном случае сервер не запустится.

  • default_table_encryption

    Формат командной строки --default-table-encryption[={OFF|ON}]
    Переменная системы default_table_encryption
    Область действия Глобальная, сеансовая
    Динамическая Да
    SET_VAR Применимо Да
    Тип Булево
    Значение по умолчанию OFF

    Определяет стандартную настройку шифрования, применяемую к схемам и общим таблицам, когда они создаются без указания ENCRYPTION-описания.

    Переменная default_table_encryption применяется только к созданным пользователем схемам и общим таблицам. Она не управляет шифрованием mysql системной таблицы.

    Для изменения текущего значения переменной default_table_encryption требуются права SYSTEM_VARIABLES_ADMIN и TABLE_ENCRYPTION_ADMIN, или устаревшее право SUPER.

    default_table_encryption поддерживает синтаксис SET PERSIST и SET PERSIST_ONLY. См. Раздел 7.1.9.3, «Постоянные переменные системы».

    Дополнительную информацию см. в Определении значения шифрования по умолчанию для схем и общих табличных пространств.

  • default_tmp_storage_engine

    Формат командной строки --default-tmp-storage-engine=name
    Переменная системы default_tmp_storage_engine
    Область действия Глобальная, сеансовая
    Динамическая Да
    SET_VAR Применимо Да
    Тип Перечисление
    Значение по умолчанию InnoDB

    Стандартный движок хранения для TEMPORARY таблиц (созданных с помощью CREATE TEMPORARY TABLE). Чтобы установить движок хранения для постоянных таблиц, установите переменную системы default_storage_engine. Также см. обсуждение этой переменной относительно возможных значений.

    Если вы отключите стандартный движок хранения при запуске сервера, вы должны установить стандартный движок как для постоянных, так и для TEMPORARY таблиц на другой движок, иначе сервер не запустится.

  • default_week_format

    Формат командной строки --default-week-format=#
    Переменная системы default_week_format
    Область действия Глобальная, сеансовая
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 7

    Значение режима по умолчанию для использования функции WEEK(). См. Раздел 14.7, «Функции даты и времени».

  • delay_key_write

    Формат командной строки --delay-key-write[={OFF|ON|ALL}]
    Переменная системы delay_key_write
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Перечисление
    Значение по умолчанию ON
    Допустимые значения

    OFF

    ON

    ALL

    Эта переменная указывает, как использовать отложенные записи ключей. Она применяется только к MyISAM таблицам. Отложенные записи ключей приводят к тому, что буферы ключей не сбрасываются между записями. См. также Раздел 18.2.1, «Параметры запуска MyISAM».

    Эта переменная может принимать одно из следующих значений для влияния на обработку DELAY_KEY_WRITE параметра таблицы, который может использоваться в операторах CREATE TABLE.

    Вариант Описание
    OFF DELAY_KEY_WRITE игнорируется.
    ON MySQL учитывает любой DELAY_KEY_WRITE параметр, указанный в операторах CREATE TABLE. Это значение по умолчанию.
    ALL Все новые открытые таблицы обрабатываются так, как если бы они были созданы с включенным параметром DELAY_KEY_WRITE.
    Примечание

    Если вы установили эту переменную на значение ALL, вам не следует использовать MyISAM таблицы из другой программы (например, другого сервера MySQL или myisamchk) когда таблицы используются. Это может привести к повреждению индекса.

    Если DELAY_KEY_WRITE включено для таблицы, буфер ключей не сбрасывается для таблицы при каждом обновлении индекса, а только при закрытии таблицы. Это значительно ускоряет запись в ключи, но если вы используете эту функцию, вам следует добавить автоматическую проверку всех MyISAM таблиц, запустив сервер с установленной системной переменной myisam_recover_options (например, myisam_recover_options='BACKUP,FORCE'). См. Раздел 7.1.8, «Системные переменные сервера» и Раздел 18.2.1, «Параметры запуска MyISAM».

    Если вы запускаете mysqld с --skip-new, delay_key_write устанавливается в OFF.

    Предупреждение

    Если вы включите внешние блокировки с помощью --external-locking, защита от повреждения индекса для таблиц, использующих отложенные записи ключей, отсутствует.

  • delayed_insert_limit

    Формат командной строки --delayed-insert-limit=#
    Устаревший Да
    Переменная системы delayed_insert_limit
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Целое число
    Значение по умолчанию 100
    Минимальное значение 1
    Максимальное значение (64-разрядные платформы) 18446744073709551615
    Максимальное значение (32-разрядные платформы) 4294967295

    Эта системная переменная устарела (потому что DELAYED вставки не поддерживаются), и вы можете ожидать, что она будет удалена в будущих выпусках.

  • delayed_insert_timeout

    Формат командной строки --delayed-insert-timeout=#
    Устаревший Да
    Переменная системы delayed_insert_timeout
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 300
    Минимальное значение 1
    Максимальное значение 31536000
    Единица измерения секунды

    Эта переменная системы устарела (потому что DELAYED вставки не поддерживаются), и ожидается, что она будет удалена в будущих выпусках.

  • delayed_queue_size

    Формат командной строки --delayed-queue-size=#
    Устаревший Да
    Переменная системы delayed_queue_size
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 1000
    Минимальное значение 1
    Максимальное значение (64-битные платформы) 18446744073709551615
    Максимальное значение (32-битные платформы) 4294967295

    Эта переменная системы устарела (потому что DELAYED вставки не поддерживаются), и ожидается, что она будет удалена в будущих выпусках.

  • disabled_storage_engines

    Формат командной строки --disabled-storage-engines=engine[,engine]...
    Переменная системы disabled_storage_engines
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется ли подсказка Нет
    Тип Строка
    Значение по умолчанию empty string

    Эта переменная указывает, какие движки хранения нельзя использовать для создания таблиц или табличных пространств. Например, чтобы предотвратить создание новых таблиц MyISAM или FEDERATED, начните сервер с этими строками в файле опций сервера:

    [mysqld]
    disabled_storage_engines="MyISAM,FEDERATED"
    

    По умолчанию disabled_storage_engines пуста (нет отключенных движков), но ее можно установить на список одного или нескольких движков, разделенных запятыми (регистр не имеет значения). Любой движок, указанный в значении, не может использоваться для создания таблиц или табличных пространств с помощью CREATE TABLE или CREATE TABLESPACE, а также не может использоваться с ALTER TABLE ... ENGINE или ALTER TABLESPACE ... ENGINE для изменения движка хранения существующих таблиц или табличных пространств. Попытки сделать это приведут к ошибке.

    disabled_storage_engines не ограничивает другие операторы DDL для существующих таблиц, такие как CREATE INDEX, TRUNCATE TABLE, ANALYZE TABLE, DROP TABLE или DROP TABLESPACE. Это позволяет плавно перейти, чтобы существующие таблицы или табличные пространства, использующие отключенный движок, могли быть перенесены в разрешенный движок с помощью таких методов, как ALTER TABLE ... ENGINE permitted_engine.

    Разрешается установить переменную системы default_storage_engine или default_tmp_storage_engine на движок хранения, который отключен. Это может привести к тому, что приложения будут вести себя непредсказуемо или аварийно завершат работу, хотя это может быть полезной техникой в среде разработки для выявления приложений, использующих отключенные движки, для того, чтобы их можно было изменить.

    disabled_storage_engines отключен и не оказывает никакого влияния, если сервер запускается с любыми из этих параметров: --initialize, --initialize-insecure, --skip-grant-tables.

  • disconnect_on_expired_password

    Формат командной строки --disconnect-on-expired-password[={OFF|ON}]
    Переменная системы disconnect_on_expired_password
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется ли подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    Эта переменная управляет тем, как сервер обрабатывает клиентов с истекшими паролями:

    • Если клиент указывает, что может обрабатывать истекшие пароли, значение disconnect_on_expired_password не имеет значения. Сервер разрешает подключение клиента, но помещает его в режим ограниченного доступа.

    • Если клиент не указывает, что может обрабатывать истекшие пароли, сервер обрабатывает клиента в соответствии со значением disconnect_on_expired_password:

      • Если disconnect_on_expired_password включена, сервер отключает клиента.

      • Если disconnect_on_expired_password отключена, сервер разрешает подключение клиента, но помещает его в режим ограниченного доступа.

    Дополнительную информацию о взаимодействии настроек клиента и сервера, относящихся к обработке истекших паролей, см. в Разделе 8.2.16, «Обработка сервером истекших паролей».

  • div_precision_increment

    Формат командной строки --div-precision-increment=#
    Переменная системы div_precision_increment
    Область действия Глобальная, Сессия
    Динамическая Да
    SET_VAR Применяется ли подсказка Да
    Тип Целое число
    Значение по умолчанию 4
    Минимальное значение 0
    Максимальное значение 30

    Эта переменная указывает количество цифр, на которое увеличивается масштаб результата операций деления, выполняемых с оператором /. Значение по умолчанию равно 4. Минимальное и максимальное значения соответственно равны 0 и 30. Следующий пример иллюстрирует влияние увеличения значения по умолчанию.

    mysql> SELECT 1/7;
    +--------+
    | 1/7    |
    +--------+
    | 0.1429 |
    +--------+
    mysql> SET div_precision_increment = 12;
    mysql> SELECT 1/7;
    +----------------+
    | 1/7            |
    +----------------+
    | 0.142857142857 |
    +----------------+
    
  • dragnet.log_error_filter_rules

    Формат командной строки --dragnet.log-error-filter-rules=value
    Переменная системы dragnet.log_error_filter_rules
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Строка
    Значение по умолчанию IF prio>=INFORMATION THEN drop. IF EXISTS source_line THEN unset source_line.

    Правила фильтрации, которые управляют работой компонента фильтра логов ошибок log_filter_dragnet. Если log_filter_dragnet не установлен, dragnet.log_error_filter_rules недоступен. Если log_filter_dragnet установлен, но не включен, изменения в dragnet.log_error_filter_rules не имеют эффекта.

    Эффект значения по умолчанию аналогичен фильтрации, выполняемой фильтром log_sink_internal с настройкой log_error_verbosity=2.

    Статус-переменная dragnet.Status может быть проконсультирована для определения результата последнего присвоения dragnet.log_error_filter_rules.

  • enterprise_encryption.maximum_rsa_key_size

    Формат командной строки --enterprise-encryption.maximum-rsa-key-size=#
    Переменная системы enterprise_encryption.maximum_rsa_key_size
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 4096
    Минимальное значение 2048
    Максимальное значение 16384

    Эта переменная ограничивает максимальный размер ключей RSA, генерируемых MySQL Enterprise Encryption. Переменная доступна только в случае установки компонента MySQL Enterprise Encryption component_enterprise_encryption.

    Самое низкое значение — 2048 бит, что является минимальной длиной ключа RSA, приемлемой по современным рекомендациям. Значение по умолчанию — 4096 бит. Максимальное значение — 16384 бита. Генерация более длинных ключей может существенно потребовать ресурсов процессора, поэтому вы можете использовать эту настройку, чтобы ограничить ключи длиной, обеспечивающей адекватную безопасность для ваших потребностей, при одновременном балансировании с использованием ресурсов. Дополнительную информацию см. в разделе 8.6.2 «Настройка MySQL Enterprise Encryption».

  • enterprise_encryption.rsa_support_legacy_padding

    Формат командной строки --enterprise-encryption.rsa_support_legacy_padding[={OFF|ON}]
    Переменная системы enterprise_encryption.rsa_support_legacy_padding
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Эта переменная управляет тем, может ли зашифрованный данные и подписи, которые MySQL Enterprise Encryption создало с помощью старых функций библиотеки openssl_udf, быть расшифрованы или проверены компонентом MySQL Enterprise Encryption (component_enterprise_encryption). Переменная доступна только в случае установки компонента MySQL Enterprise Encryption.

    Чтобы компонентные функции поддерживали расшифровку и проверку содержимого, созданного старыми функциями библиотеки openssl_udf, необходимо установить значение переменной padding на ON. Когда ON установлено, если компонентные функции не могут расшифровать или проверить содержимое, предполагая, что оно имеет схему RSAES-OAEP или RSASSA-PSS (используемую компонентом), они пытаются ещё раз, предполагая, что оно имеет схему RSAES-PKCS1-v1_5 или RSASSA-PKCS1-v1_5 (как используется библиотекой openssl_udf). Когда OFF установлено, если компонентные функции не могут расшифровать или проверить содержимое, используя свои обычные схемы, они возвращают пустой результат. Дополнительную информацию см. в разделе 8.6.2 «Настройка MySQL Enterprise Encryption».

  • end_markers_in_json

    Формат командной строки --end-markers-in-json[={OFF|ON}]
    Переменная системы end_markers_in_json
    Область действия Глобальная, сессия
    Динамическая Да
    SET_VAR Применяется ли подсказка Да
    Тип Булево
    Значение по умолчанию OFF

    Добавлять ли маркеры конца в выходные данные оптимизатора в формате JSON. См. MySQL Internals: The end_markers_in_json System Variable.

  • eq_range_index_dive_limit

    Формат командной строки --eq-range-index-dive-limit=#
    Переменная системы eq_range_index_dive_limit
    Область действия Глобальная, сессия
    Динамическая Да
    SET_VAR Применяется ли подсказка Да
    Тип Целое число
    Значение по умолчанию 200
    Минимальное значение 0
    Максимальное значение 4294967295

    Эта переменная указывает количество диапазонов равенства в условии сравнения по равенству, когда оптимизатор должен перейти от использования погружений в индекс к статистике индекса при оценке количества удовлетворяющих строк. Она применяется к оценке выражений, имеющих одну из этих эквивалентных форм, где оптимизатор использует неуникальный индекс для поиска значений col_name:

    col_name IN(val1, ..., valN)
    col_name = val1 OR ... OR col_name = valN
    

    В обоих случаях выражение содержит N диапазонов равенства. Оптимизатор может оценивать строки с помощью погружений в индекс или статистики индекса. Если eq_range_index_dive_limit больше 0, оптимизатор использует имеющуюся статистику индекса вместо погружений в индекс, если диапазонов равенства eq_range_index_dive_limit или больше. Таким образом, чтобы разрешить использование погружений в индекс для до N диапазонов равенства, установите eq_range_index_dive_limit на N + 1. Чтобы отключить использование статистики индекса и всегда использовать погружения в индекс независимо от N, установите eq_range_index_dive_limit на 0.

    Дополнительную информацию см. в разделе «Оптимизация диапазонов равенства для сравнений с несколькими значениями».

    Для обновления статистики индекса таблиц для лучших оценок используйте ANALYZE TABLE.

  • error_count

    Количество ошибок, возникших в результате последнего оператора, сгенерировавшего сообщения. Эта переменная является только для чтения. См. раздел 15.7.7.18 «Оператор SHOW ERRORS».

END_OF_DOCUMENT_MARKER
  • event_scheduler

    Формат командной строки --event-scheduler[=value]
    Системная переменная event_scheduler
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Перечисление
    Значение по умолчанию ON
    Допустимые значения

    ON

    OFF

    DISABLED

    Эта переменная включает или отключает и запускает или останавливает планировщик событий. Возможные значения статуса — ON, OFF и DISABLED. Включение планировщика событий OFF отличается от его отключения, которое требует установки статуса в DISABLED. Более подробная информация о этой переменной и её влиянии на работу планировщика событий приведена в разделе 27.4.2, «Настройка планировщика событий»

  • explain_format

    Формат командной строки --explain-format=format
    Системная переменная explain_format
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Перечисление
    Значение по умолчанию TRADITIONAL
    Допустимые значения

    TRADITIONAL (DEFAULT)

    JSON

    TREE

    Эта переменная определяет формат вывода по умолчанию, используемый EXPLAIN при отсутствии параметра FORMAT при отображении плана выполнения запроса. Возможные значения и их эффекты перечислены здесь:

    • TRADITIONAL: Используется традиционный табличный вывод MySQL, как если бы FORMAT=TRADITIONAL было указано в качестве части команды EXPLAIN. Это значение по умолчанию. DEFAULT также поддерживается как синоним для TRADITIONAL и имеет точно такой же эффект.

      Примечание

      DEFAULT не может быть использовано в качестве части параметра EXPLAIN команды FORMAT.

    • JSON: Используется формат вывода JSON, как если бы было указано FORMAT=JSON.

    • TREE: Используется формат древовидного вывода, как если бы было указано FORMAT=TREE.

    Настройка этой переменной также влияет на EXPLAIN ANALYZE. Для этой цели DEFAULT и TRADITIONAL интерпретируются как TREE. Если значение explain_format равно JSON, а команда EXPLAIN ANALYZE без параметра FORMAT, то команда выдаст ошибку.

    Использование спецификатора формата с EXPLAIN или EXPLAIN ANALYZE переопределяет любое значение для explain_format.

    Системная переменная explain_format не влияет на вывод EXPLAIN, когда эта команда используется для отображения информации о столбцах таблицы.

    Установка сеансового значения explain_format не требует специальных привилегий; установка на глобальном уровне требует SYSTEM_VARIABLES_ADMIN (или устаревшего SUPER привилегии). См. раздел 7.1.9.1, «Привилегии на системные переменные».

    Более подробная информация и примеры приведены в Получение информации о плане выполнения.

  • explain_json_format_version

    Формат командной строки --explain-json-format-version=#
    Системная переменная explain_json_format_version
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 1
    Минимальное значение 1
    Максимальное значение 2

    Определяет версию формата JSON вывода, используемого командами EXPLAIN FORMAT=JSON. Установка этой переменной в 1 заставляет сервер использовать версию 1, которая является линейным форматом вывода для таких команд в более старых версиях MySQL; это значение по умолчанию в MySQL 8.4. Установка explain_json_format_version в 2 заставляет использовать формат версии 2; этот формат JSON вывода основан на путях доступа и предназначен для лучшей совместимости с будущими версиями оптимизатора MySQL.

    Пример использования см. в Получение информации о плане выполнения.

  • explicit_defaults_for_timestamp

    Формат командной строки --explicit-defaults-for-timestamp[={OFF|ON}]
    Устаревший Да
    Переменная системы explicit_defaults_for_timestamp
    Область действия Глобальная, сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    Эта переменная системы определяет, разрешает ли сервер определённые нестандартные действия для значений по умолчанию и обработки значений NULL в колонках TIMESTAMP. По умолчанию, explicit_defaults_for_timestamp включена, что отключает нестандартные действия. Отключение explicit_defaults_for_timestamp приводит к появлению предупреждения.

    Если explicit_defaults_for_timestamp отключена, сервер включает нестандартные действия и обрабатывает колонки TIMESTAMP следующим образом:

    • Колонки TIMESTAMP, не явно объявленные с атрибутом NULL, автоматически объявляются с атрибутом NOT NULL. Присвоение такой колонке значения NULL разрешено и устанавливает колонку на текущую метку времени. Исключение: Попытка вставить NULL в сгенерированную колонку, объявленную как TIMESTAMP NOT NULL, отклоняется с ошибкой.

    • Первая колонка TIMESTAMP в таблице, если она не объявлена явно с атрибутом NULL или явным атрибутом DEFAULT или ON UPDATE, автоматически объявляется с атрибутами DEFAULT CURRENT_TIMESTAMP и ON UPDATE CURRENT_TIMESTAMP.

    • Колонки TIMESTAMP, следующие за первой, если они не объявлены явно с атрибутом NULL или явным атрибутом DEFAULT, автоматически объявляются как DEFAULT '0000-00-00 00:00:00' (метка времени «ноль»). Для строк вставки, не содержащих явного значения для такой колонки, колонке присваивается '0000-00-00 00:00:00' и не появляется предупреждение.

      В зависимости от того, включен ли строгий режим SQL или режим SQL NO_ZERO_DATE, значение по умолчанию '0000-00-00 00:00:00' может быть недействительным. Имейте в виду, что режим SQL TRADITIONAL включает строгий режим и NO_ZERO_DATE. См. Раздел 7.1.11, «Режимы SQL сервера».

    Описанные нестандартные действия устарели; ожидается, что они будут удалены в будущих выпусках MySQL.

    Если explicit_defaults_for_timestamp включена, сервер отключает нестандартные действия и обрабатывает колонки TIMESTAMP следующим образом:

    • Невозможно присвоить колонке TIMESTAMP значение NULL для установки её на текущую метку времени. Для присвоения текущей метки времени установите колонку на CURRENT_TIMESTAMP или синоним, такой как NOW().

    • Колонки TIMESTAMP, не явно объявленные с атрибутом NOT NULL, автоматически объявляются с атрибутом NULL и допускают значения NULL. Присвоение такой колонке значения NULL устанавливает её на NULL, а не на текущую метку времени.

    • Колонки TIMESTAMP, объявленные с атрибутом NOT NULL, не допускают значений NULL. Для вставок, в которых для такой колонки указано значение NULL, результатом является либо ошибка для вставки одной строки, если включён строгий режим SQL, либо '0000-00-00 00:00:00' вставляется для вставок нескольких строк со строгим режимом SQL выключенным. Ни в одном случае присвоение колонке значения NULL не устанавливает её на текущую метку времени.

    • Колонки TIMESTAMP, явно объявленные с атрибутом NOT NULL и без явного атрибута DEFAULT, обрабатываются как не имеющие значения по умолчанию. Для строк вставки, не содержащих явного значения для такой колонки, результат зависит от режима SQL. Если строгий режим SQL включён, возникает ошибка. Если строгий режим SQL выключен, колонка объявляется с неявным значением по умолчанию '0000-00-00 00:00:00' и появляется предупреждение. Это аналогично тому, как MySQL обрабатывает другие временные типы, такие как DATETIME.

    • Ни одна колонка TIMESTAMP не объявляется автоматически с атрибутами DEFAULT CURRENT_TIMESTAMP или ON UPDATE CURRENT_TIMESTAMP. Эти атрибуты должны быть указаны явно.

    • Первая колонка TIMESTAMP в таблице обрабатывается не по-другому, чем колонки TIMESTAMP, следующие за первой.

    Если explicit_defaults_for_timestamp отключена при запуске сервера, в журнале ошибок появляется это предупреждение:

    [Warning] TIMESTAMP with implicit DEFAULT value is deprecated.
    Please use --explicit_defaults_for_timestamp server option (see
    documentation for more details).
    

    Как указано в предупреждении, для отключения устаревших нестандартных действий, включите переменную системы explicit_defaults_for_timestamp при запуске сервера.

    Примечание

    explicit_defaults_for_timestamp сама по себе устарела, потому что её единственная цель — позволить управлять устаревшими действиями TIMESTAMP, которые должны быть удалены в будущих выпусках MySQL. При удалении этих действий ожидается, что explicit_defaults_for_timestamp будет удалена также.

    Для дополнительной информации, см. Раздел 13.2.5, «Автоматическая инициализация и обновление для TIMESTAMP и DATETIME».

  • external_user

    Переменная системы external_user
    Область действия Сеанс
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Строка

    Имя внешнего пользователя, используемое во время процесса аутентификации, установленное используемым для аутентификации клиента плагином. При использовании родной (встроенной) аутентификации MySQL или если значение не задано плагином, эта переменная имеет значение NULL. См. Раздел 8.2.19, «Прокси-пользователи».

  • flush

    Формат командной строки --flush[={OFF|ON}]
    Системная переменная flush
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Boolean
    Значение по умолчанию OFF

    Если ON, сервер очищает (синхронизирует) все изменения на диске после каждого оператора SQL. Обычно MySQL выполняет запись всех изменений на диск только после каждого оператора SQL и позволяет операционной системе обрабатывать синхронизацию с диском. См. Раздел B.3.3.3, «Что делать, если MySQL постоянно падает». Эта переменная устанавливается в ON, если вы запускаете mysqld с помощью опции --flush.

    Примечание

    Если flush включен, значение flush_time не имеет значения, и изменения flush_time не влияют на поведение очистки.

  • flush_time

    Формат командной строки --flush-time=#
    Системная переменная flush_time
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Integer
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 31536000
    Единица измерения секунды

    Если это значение установлено в ненулевое значение, все таблицы закрываются каждые flush_time секунд для освобождения ресурсов и синхронизации неочищенных данных на диске. Этот параметр лучше всего использовать только на системах с минимальными ресурсами.

    Примечание

    Если flush включен, значение flush_time не имеет значения, и изменения flush_time не влияют на поведение очистки.

  • foreign_key_checks

    Системная переменная foreign_key_checks
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Boolean
    Значение по умолчанию ON

    Если установлено значение 1 (по умолчанию), ограничения внешнего ключа проверяются. Если установлено значение 0, ограничения внешнего ключа игнорируются, за исключением нескольких случаев. При повторном создании таблицы, которая была удалена, возвращается ошибка, если определение таблицы не соответствует ограничениям внешнего ключа, ссылающимся на таблицу. Аналогично, операция ALTER TABLE возвращает ошибку, если определение внешнего ключа неправильно сформировано. Для получения дополнительной информации см. Раздел 15.1.20.5, «Ограничения FOREIGN KEY».

    Установка этой переменной оказывает такое же влияние на таблицы NDB, как и на таблицы InnoDB. Обычно вы оставляете этот параметр включенным во время нормальной работы, чтобы обеспечить принудительное выполнение. Отключение проверки внешних ключей может быть полезно для повторной загрузки таблиц InnoDB в порядке, отличном от требуемого их родительскими/дочерними отношениями. См. Раздел 15.1.20.5, «Ограничения FOREIGN KEY».

    Установка foreign_key_checks в 0 также влияет на операторы определения данных: DROP SCHEMA удаляет схему, даже если она содержит таблицы, имеющие внешние ключи, на которые ссылаются таблицы за пределами схемы, и DROP TABLE удаляет таблицы, имеющие внешние ключи, на которые ссылаются другие таблицы.

    Примечание

    Установка foreign_key_checks в 1 не приводит к сканированию существующих данных таблицы. Поэтому строки, добавленные в таблицу, пока foreign_key_checks = 0 не включены, не проверяются на согласованность.

    Удаление индекса, требуемого ограничением внешнего ключа, не допускается, даже с foreign_key_checks=0. Ограничение внешнего ключа должно быть удалено перед удалением индекса.

  • ft_boolean_syntax

    Формат командной строки --ft-boolean-syntax=name
    Системная переменная ft_boolean_syntax
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип String
    Значение по умолчанию + -><()~*:""&|

    Список операторов, поддерживаемых булевыми полнотекстовыми поисками, выполняемыми с использованием IN BOOLEAN MODE. См. Раздел 14.9.2, «Булевы полнотекстовые поиски».

    Значение переменной по умолчанию — '+ -><()~*:""&|'. Правила изменения значения следующие:

    • Функция оператора определяется положением в строке.

    • Замещающее значение должно состоять из 14 символов.

    • Каждый символ должен быть неалфавитно-цифровым ASCII-символом.

    • Первым или вторым символом должен быть пробел.

    • Дубликаты не допускаются, за исключением операторов кавычек фразы в позициях 11 и 12. Эти два символа не обязаны быть одинаковыми, но это единственные два символа, которые могут быть одинаковыми.

    • Позиции 10, 13 и 14 (которые по умолчанию установлены в :, & и |) зарезервированы для будущих расширений.

  • ft_max_word_len

    Формат командной строки --ft-max-word-len=#
    Системная переменная ft_max_word_len
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Integer
    Значение по умолчанию 84
    Минимальное значение 10
    Максимальное значение 84

    Максимальная длина слова, которое должно быть включено в индекс MyISAM FULLTEXT.

    Примечание

    Индексы FULLTEXT для таблиц MyISAM должны быть перестроены после изменения этой переменной. Используйте REPAIR TABLE tbl_name QUICK.

  • ft_min_word_len

    Формат командной строки --ft-min-word-len=#
    Системная переменная ft_min_word_len
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 4
    Минимальное значение 1
    Максимальное значение 82

    Минимальная длина слова, которое должно быть включено в индекс MyISAM FULLTEXT.

    Примечание

    Индексы FULLTEXT на таблицах MyISAM должны быть перестроены после изменения этой переменной. Используйте REPAIR TABLE tbl_name QUICK.

  • ft_query_expansion_limit

    Формат командной строки --ft-query-expansion-limit=#
    Системная переменная ft_query_expansion_limit
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 20
    Минимальное значение 0
    Максимальное значение 1000

    Количество лучших совпадений для использования при поиске полного текста, выполняемого с использованием WITH QUERY EXPANSION.

  • ft_stopword_file

    Формат командной строки --ft-stopword-file=file_name
    Системная переменная ft_stopword_file
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Имя файла

    Файл, из которого следует читать список стоп-слов для поиска полного текста в таблицах MyISAM. Сервер ищет файл в каталоге данных, если не указано абсолютное имя пути для указания другого каталога. Используются все слова из файла; комментарии не учитываются. По умолчанию используется встроенный список стоп-слов (как определено в файле storage/myisam/ft_static.c). Установка этой переменной в пустую строку ('') отключает фильтрацию стоп-слов. См. также Раздел 14.9.4, «Стоп-слова полного текста».

    Примечание

    Индексы FULLTEXT на таблицах MyISAM должны быть перестроены после изменения этой переменной или содержимого файла стоп-слов. Используйте REPAIR TABLE tbl_name QUICK.

  • general_log

    Формат командной строки --general-log[={OFF|ON}]
    Системная переменная general_log
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию OFF

    Включен ли общий лог запросов. Значение может быть 0 (или OFF) для отключения журнала или 1 (или ON) для включения журнала. Назначение для вывода журнала контролируется системной переменной log_output; если это значение равно NONE, записи журнала не записываются, даже если журнал включен.

  • general_log_file

    Формат командной строки --general-log-file=file_name
    Системная переменная general_log_file
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Имя файла
    Значение по умолчанию host_name.log

    Имя файла общего журнала запросов. Значение по умолчанию — host_name.log, но начальное значение может быть изменено с помощью параметра --general_log_file.

  • generated_random_password_length

    Формат командной строки --generated-random-password-length=#
    Системная переменная generated_random_password_length
    Область видимости Глобальная, Сессия
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 20
    Минимальное значение 5
    Максимальное значение 255

    Максимальное количество символов, допустимых в случайных паролях, сгенерированных для операторов CREATE USER, ALTER USER и SET PASSWORD. Для получения дополнительной информации см. Генерация случайных паролей.

  • global_connection_memory_limit

    Формат командной строки --global-connection-memory-limit=#
    Системная переменная global_connection_memory_limit
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 18446744073709551615
    Минимальное значение 16777216
    Максимальное значение 18446744073709551615
    Единица измерения байты

    Установите общее количество памяти, которое может использоваться всеми пользовательскими подключениями; то есть Global_connection_memory не должно превышать это значение. Всякий раз, когда это происходит, все запросы (включая любые запущенные) от обычных пользователей отклоняются с .

    Память, используемая системными пользователями, такими как пользователь root MySQL, включается в этот общий объем, но не учитывается при ограничении отключения; такие пользователи никогда не отключаются из-за использования памяти.

    Память, используемая пулом буферов InnoDB, исключается из общего объема.

    Для установки этой переменной необходимо иметь привилегию SYSTEM_VARIABLES_ADMIN или SUPER.

  • global_connection_memory_tracking

    Формат командной строки --global-connection-memory-tracking={TRUE|FALSE}
    Системная переменная global_connection_memory_tracking
    Область видимости Глобальная, Сессия
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию FALSE

    Определяет, вычисляет ли сервер Global_connection_memory. Эту переменную необходимо включить явно; в противном случае расчет памяти не выполняется, и Global_connection_memory не устанавливается.

    Для установки этой переменной необходимо иметь привилегию SYSTEM_VARIABLES_ADMIN или SUPER.

  • group_concat_max_len

    Формат командной строки --group-concat-max-len=#
    Системная переменная group_concat_max_len
    Область действия Глобальная, сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Целое число
    Значение по умолчанию 1024
    Минимальное значение 4
    Максимальное значение (64-битные платформы) 18446744073709551615
    Максимальное значение (32-битные платформы) 4294967295

    Максимальная длина результата в байтах для функции GROUP_CONCAT(). Значение по умолчанию — 1024.

  • have_compress

    YES, если для сервера доступна библиотека сжатия zlib, NO, если нет. Если нет, функции COMPRESS() и UNCOMPRESS() недоступны.

  • have_dynamic_loading

    YES, если mysqld поддерживает динамическую загрузку плагинов, NO, если нет. Если значение равно NO, вы не можете использовать такие опции, как --plugin-load для загрузки плагинов при запуске сервера, или оператор INSTALL PLUGIN для загрузки плагинов во время выполнения.

  • have_geometry

    YES, если сервер поддерживает пространственные типы данных, NO, если нет.

  • have_profiling

    YES, если есть возможность профилирования операторов, NO, если нет. Если есть, системная переменная profiling управляет включением или выключением этой возможности. См. Раздел 15.7.7.33, «Оператор SHOW PROFILES».

    Эта переменная устарела; ожидается её удаление в будущих версиях MySQL.

  • have_query_cache

    have_query_cache устарела, всегда имеет значение NO и ожидается её удаление в будущих версиях MySQL.

  • have_rtree_keys

    YES, если индексы RTREE доступны, NO, если нет. (Они используются для пространственных индексов в таблицах MyISAM).

  • have_statement_timeout

    Системная переменная have_statement_timeout
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Булево

    Доступна ли функция таймаута выполнения оператора (см. Подсказки оптимизатора для времени выполнения операторов). Значение может быть NO, если фоновый поток, используемый этой функцией, не удалось инициализировать.

  • have_symlink

    YES, если поддержка символических ссылок включена, NO, если нет. Это необходимо на Unix для поддержки параметров таблиц DATA DIRECTORY и INDEX DIRECTORY. Если сервер запущен с опцией --skip-symbolic-links, значение равно DISABLED.

    Эта переменная не имеет смысла на Windows.

    Примечание

    Поддержка символических ссылок, а также опция --symbolic-links, контролирующая её, устарела; ожидается их удаление в будущей версии MySQL. Кроме того, эта опция отключена по умолчанию. Соответствующая системная переменная have_symlink также устарела и ожидается её удаление в будущих версиях MySQL.

  • histogram_generation_max_mem_size

    Формат командной строки --histogram-generation-max-mem-size=#
    Системная переменная histogram_generation_max_mem_size
    Область действия Глобальная, сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 20000000
    Минимальное значение 1000000
    Максимальное значение (64-битные платформы) 18446744073709551615
    Максимальное значение (32-битные платформы) 4294967295
    Единица измерения байт

    Максимальный объем памяти, доступный для генерации статистических данных гистограмм. См. Раздел 10.9.6, «Статистика оптимизатора» и Раздел 15.7.3.1, «Оператор ANALYZE TABLE».

    Установка значения сеанса этой системной переменной — ограниченная операция. Пользователь сеанса должен иметь достаточные привилегии для установки ограниченных переменных сеанса. См. Раздел 7.1.9.1, «Привилегии на системные переменные».

  • host_cache_size

    Формат командной строки --host-cache-size=#
    Системная переменная host_cache_size
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию -1 (указывает на автоматическое масштабирование; не присваивайте это значение)
    Минимальное значение 0
    Максимальное значение 65536

    Сервер MySQL поддерживает кэш хостов в памяти, содержащий информацию о имени и IP-адресе клиента, и используется для избежания обращений к DNS (Domain Name System); см. Раздел 7.1.12.3, «DNS-запросы и кэш хостов».

    Переменная host_cache_size управляет размером кэша хостов, а также размером таблицы Performance Schema host_cache, которая показывает содержимое кэша. Установка значения host_cache_size имеет следующие эффекты:

    • Установка размера в 0 отключает кэш хостов. При отключённом кэше сервер выполняет запрос DNS каждый раз при подключении клиента.

    • Изменение размера во время работы вызывает неявную операцию сброса кэша хостов, очищает кэш хостов, обнуляет таблицу host_cache и разблокирует заблокированные хосты.

    Значение по умолчанию — автоматически подстраиваемое до 128, плюс 1 для значения max_connections до 500, плюс 1 для каждого приращения 20 над 500 в значении max_connections, ограниченное значением 2000.

  • hostname

    Переменная системы hostname
    Область Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Строка

    Сервер устанавливает эту переменную в имя хоста сервера при запуске. Максимальная длина — 255 символов.

  • identity

    Эта переменная является синонимом переменной last_insert_id. Она существует для совместимости с другими системами баз данных. Вы можете прочитать ее значение с помощью SELECT @@identity, и установить с помощью SET identity.

  • init_connect

    Формат командной строки --init-connect=name
    Переменная системы init_connect
    Область Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Строка

    Строка, которая выполняется сервером для каждого подключающегося клиента. Строка состоит из одной или нескольких SQL-команд, разделенных точкой с запятой.

    Для пользователей с привилегией CONNECTION_ADMIN (или устаревшей привилегией SUPER) содержимое init_connect не выполняется. Это делается для того, чтобы неправильное значение для init_connect не препятствовало подключению всех клиентов. Например, значение может содержать инструкцию, имеющую синтаксическую ошибку, что приведет к отказу в подключении к клиенту. Отсутствие выполнения init_connect для пользователей с привилегией CONNECTION_ADMIN или SUPER позволяет им открыть подключение и исправить значение init_connect.

    Выполнение init_connect пропускается для любого клиента-пользователя с истекшим паролем. Это делается, потому что такой пользователь не может выполнить произвольные инструкции, и поэтому выполнение init_connect терпит неудачу, не позволяя клиенту подключиться. Пропуск выполнения init_connect позволяет пользователю подключиться и сменить пароль.

    Сервер отбрасывает все наборы результатов, полученные инструкциями в значении init_connect.

  • information_schema_stats_expiry

    Формат командной строки --information-schema-stats-expiry=#
    Переменная системы information_schema_stats_expiry
    Область Глобальная, сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 86400
    Минимальное значение 0
    Максимальное значение 31536000
    Единица измерения секунды

    Некоторые таблицы INFORMATION_SCHEMA содержат столбцы, которые предоставляют статистику по таблицам:

    STATISTICS.CARDINALITY
    TABLES.AUTO_INCREMENT
    TABLES.AVG_ROW_LENGTH
    TABLES.CHECKSUM
    TABLES.CHECK_TIME
    TABLES.CREATE_TIME
    TABLES.DATA_FREE
    TABLES.DATA_LENGTH
    TABLES.INDEX_LENGTH
    TABLES.MAX_DATA_LENGTH
    TABLES.TABLE_ROWS
    TABLES.UPDATE_TIME
    

    Эти столбцы представляют собой динамические метаданные таблицы; то есть информацию, которая изменяется по мере изменения содержимого таблицы.

    По умолчанию MySQL получает кешированные значения для этих столбцов из словарей mysql.index_stats и mysql.table_stats при запросе столбцов, что более эффективно, чем непосредственное извлечение статистики из движка хранения. Если кешированные статистические данные недоступны или истекли, MySQL извлекает самые свежие статистические данные из движка хранения и кеширует их в словарях mysql.index_stats и mysql.table_stats. Последующие запросы получают кешированные статистические данные до тех пор, пока они не истекут. Перезагрузка сервера или первое открытие таблиц mysql.index_stats и mysql.table_stats не обновляют кешированные статистические данные автоматически.

    Переменная сеанса information_schema_stats_expiry определяет период времени, в течение которого кешированные статистические данные истекают. По умолчанию 86400 секунд (24 часа), но этот период может быть продлен до одного года.

    Для обновления кешированных значений для заданной таблицы в любое время используйте ANALYZE TABLE.

    Чтобы всегда извлекать самые свежие статистические данные непосредственно из движка хранения и обойти кешированные значения, установите information_schema_stats_expiry в 0.

    Запрос столбцов статистики не сохраняет и не обновляет статистику в словарях mysql.index_stats и mysql.table_stats в следующих случаях:

    • Когда кешированные статистические данные не истекли.

    • Когда information_schema_stats_expiry установлено в 0.

    • Когда сервер находится в режиме read_only, super_read_only, transaction_read_only или innodb_read_only.

    • Когда запрос также извлекает данные Performance Schema.

    Кэш статистики может быть обновлён во время многострочной транзакции до того, как будет известно, будет ли транзакция завершена. В результате кэш может содержать информацию, которая не соответствует известному завершённому состоянию. Это может произойти с autocommit=0 или после START TRANSACTION.

    information_schema_stats_expiry — переменная сеанса, и каждый сеанс клиента может определить свое значение истечения. Статистика, полученная из движка хранения и кэшированная одним сеансом, доступна другим сеансам.

    Для получения дополнительной информации см. Раздел 10.2.3, «Оптимизация запросов INFORMATION_SCHEMA».

  • init_file

    Формат командной строки --init-file=file_name
    Системная переменная init_file
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Имя файла

    При указании этой переменной задаётся имя файла, содержащего SQL-команды, которые будут считываться и выполняться во время начального процесса. Допустимый формат команд в этом файле поддерживает следующие конструкции:

    • delimiter ;, для установки разделителя команд на символ ;.

    • delimiter $$, для установки разделителя команд на последовательность символов $$.

    • Несколько команд на одной строке, разделённых текущим разделителем.

    • Команды, занимающие несколько строк.

    • Комментарии от символа # до конца строки.

    • Комментарии от последовательности --  до конца строки.

    • Комментарии в стиле C от последовательности /* до следующей последовательности */, включая несколько строк.

    • Строковые литералы, занимающие несколько строк, заключённые в одинарные кавычки (') или двойные кавычки (").

    Если сервер запускается с опцией --initialize или --initialize-insecure, он работает в режиме загрузки, и некоторые функции недоступны, что ограничивает разрешённые команды в файле. Это включает команды, связанные с управлением учётными записями (например, CREATE USER или GRANT), репликацией и глобальными идентификаторами транзакций. См. Раздел 19.1.3, «Репликация с глобальными идентификаторами транзакций».

    Потоки, созданные во время запуска сервера, используются для задач, таких как создание словаря данных, выполнение процедур обновления и создание системных таблиц. Для обеспечения стабильной и предсказуемой среды эти потоки выполняются с встроенными значениями по умолчанию сервера для некоторых системных переменных, таких как sql_mode, character_set_server, collation_server, completion_type, explicit_defaults_for_timestamp и default_table_encryption.

    Эти потоки также используются для выполнения команд из любого файла, указанного с помощью init_file при запуске сервера, поэтому такие команды выполняются с встроенными значениями по умолчанию сервера для этих системных переменных.

  • innodb_xxx

    Системные переменные InnoDB перечислены в Разделе 17.14, «Параметры запуска InnoDB и системные переменные». Эти переменные управляют многими аспектами хранения, использованием памяти и паттернами ввода-вывода для таблиц InnoDB, и они особенно важны сейчас, когда InnoDB является движком хранения по умолчанию.

  • insert_id

    Значение, которое будет использоваться следующей командой INSERT или ALTER TABLE при вставке значения AUTO_INCREMENT. Это в основном используется с бинарным журналом.

  • interactive_timeout

    Формат командной строки --interactive-timeout=#
    Системная переменная interactive_timeout
    Область действия Глобальная, Сеансовая
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 28800
    Минимальное значение 1
    Максимальное значение 31536000
    Единица измерения секунды

    Количество секунд, которое сервер ожидает активности по интерактивному соединению перед его закрытием. Интерактивный клиент определяется как клиент, использующий опцию CLIENT_INTERACTIVE. См. также wait_timeout.

  • internal_tmp_mem_storage_engine

    Формат командной строки --internal-tmp-mem-storage-engine=#
    Системная переменная internal_tmp_mem_storage_engine
    Область действия Глобальная, Сеансовая
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Перечисление
    Значение по умолчанию TempTable
    Допустимые значения

    MEMORY

    TempTable

    Двигатель хранения для временных внутренних таблиц в памяти (см. Раздел 10.4.4, «Использование внутренних временных таблиц в MySQL»). Разрешённые значения — TempTable (значение по умолчанию) и MEMORY.

    Использует двигатель хранения, определённый internal_tmp_mem_storage_engine, для внутренних временных таблиц в памяти.

    Настройка сеансовой настройки internal_tmp_mem_storage_engine требует привилегии SESSION_VARIABLES_ADMIN или SYSTEM_VARIABLES_ADMIN.

  • join_buffer_size

    Формат командной строки --join-buffer-size=#
    Системная переменная join_buffer_size
    Область действия Глобальная, Сессия
    Динамическая Да
    Применяется подсказка SET_VAR Да
    Тип Целое число
    Значение по умолчанию 262144
    Минимальное значение 128
    Максимальное значение (Windows) 4294967168
    Максимальное значение (Другие, 64-битные платформы) 18446744073709551488
    Максимальное значение (Другие, 32-битные платформы) 4294967168
    Единица измерения байты
    Размер блока 128

    Минимальный размер буфера, используемого для простых сканирований индексов, сканирований индексов диапазонов и объединений, не использующих индексы, и, следовательно, выполняющих полное сканирование таблицы. Эта переменная также управляет объемом памяти, используемой для объединений хэш-типа. Обычно лучший способ получить быстрые объединения — добавить индексы. Увеличьте значение join_buffer_size, чтобы получить более быстрое полное объединение, когда добавление индексов невозможно. Для каждого полного объединения между двумя таблицами выделяется один буфер объединения. Для сложного объединения между несколькими таблицами, для которого не используются индексы, может потребоваться несколько буферов объединения.

    Значение по умолчанию — 256 КБ. Максимально допустимое значение для join_buffer_size составляет 4 ГБ−1. Более крупные значения разрешены для 64-битных платформ (за исключением 64-битной Windows, для которой большие значения усекаются до 4 ГБ−1 с предупреждением). Размер блока составляет 128, и значение, которое не является точным кратным размеру блока, округляется вниз до ближайшего меньшего кратного размера блока сервером MySQL перед сохранением значения системной переменной. Парсер допускает значения до максимального беззнакового целого значения для платформы (4294967295 или 232−1 для 32-битной системы, 18446744073709551615 или 264−1 для 64-битной системы), но фактическая максимальное значение меньше, на размер блока.

    Если не используется алгоритм Block Nested-Loop или Batched Key Access, нет выгоды от увеличения размера буфера сверх необходимого для хранения каждой соответствующей строки, и все объединения выделяют, по крайней мере, минимальный размер, поэтому будьте осторожны при установке этой переменной в большое значение глобально. Лучше поддерживать глобальное значение небольшим и изменять значение сессии на большее значение только в сессиях, выполняющих большие объединения, или изменять значение для каждого запроса, используя подсказку оптимизатора SET_VAR (см. Раздел 10.9.3, «Подсказки оптимизатора»). Время выделения памяти может привести к существенному снижению производительности, если глобальный размер больше, чем требуется большинству запросов, которые его используют.

    При использовании Block Nested-Loop, увеличение буфера объединения может быть полезным до тех пор, пока все необходимые столбцы из всех строк в первой таблице не будут помещены в буфер объединения. Это зависит от запроса; оптимальный размер может быть меньше, чем хранение всех строк из первой таблицы.

    При использовании Batched Key Access, значение join_buffer_size определяет, насколько большим является пакет ключей в каждом запросе к хранилищу. Чем больше буфер, тем больше последовательный доступ производится к правой таблице операции объединения, что может значительно улучшить производительность.

    Дополнительную информацию об объединении буферов см. в Разделе 10.2.1.7, «Алгоритмы объединения Nested-Loop». Информацию об обработке пакетов ключей см. в Разделе 10.2.1.12, «Объединения Block Nested-Loop и Batched Key Access». Информацию об объединениях хэш-типа см. в Разделе 10.2.1.4, «Оптимизация объединения хэш-типа».

  • keep_files_on_create

    Формат командной строки --keep-files-on-create[={OFF|ON}]
    Системная переменная keep_files_on_create
    Область действия Глобальная, Сессия
    Динамическая Да
    Применяется подсказка SET_VAR Нет
    Тип Булево
    Значение по умолчанию OFF

    Если таблица MyISAM создается без опции DATA DIRECTORY, файл .MYD создается в каталоге базы данных. По умолчанию, если MyISAM находит существующий файл .MYD в этом случае, он перезаписывает его. То же самое относится к файлам .MYI для таблиц, созданных без опции INDEX DIRECTORY. Чтобы подавить это поведение, установите переменную keep_files_on_create в значение ON (1), в этом случае MyISAM не перезаписывает существующие файлы и вместо этого возвращает ошибку. Значение по умолчанию — OFF (0).

    Если таблица MyISAM создается с опцией DATA DIRECTORY или INDEX DIRECTORY и найден существующий файл .MYD или .MYI, MyISAM всегда возвращает ошибку. Он не перезаписывает файл в указанном каталоге.

  • key_buffer_size

    Формат командной строки --key-buffer-size=#
    Системная переменная key_buffer_size
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 8388608
    Минимальное значение 0
    Максимальное значение (64-битные платформы) OS_PER_PROCESS_LIMIT
    Максимальное значение (32-битные платформы) 4294967295
    Единица измерения байты

    Блоки индексов для таблиц MyISAM кэшируются и используются всеми потоками. key_buffer_size — это размер буфера, используемого для блоков индексов. Кэш ключей также известен как кэш индексов.

    Минимальное допустимое значение — 0, но вы не можете установить key_buffer_size в 0 динамически. Значение 0 удаляет кэш ключей, что недопустимо во время выполнения. Установка key_buffer_size в 0 разрешена только при запуске, в этом случае кэш ключей не инициализируется. Изменение значения key_buffer_size во время выполнения со значения 0 на допустимое ненулевое значение инициализирует кэш ключей.

    key_buffer_size может быть увеличено или уменьшено только с шагом или кратным 4096 байтам. Увеличение или уменьшение значения с несоответствующим шагом приводит к предупреждению и обрезанию значения до допустимого значения.

    Максимальное допустимое значение для key_buffer_size составляет 4 ГБ−1 на 32-битных платформах. Более высокие значения допустимы для 64-битных платформ. Эффективный максимальный размер может быть меньше, в зависимости от доступной физической ОЗУ и ограничений на ОЗУ на процесс, накладываемых вашей операционной системой или аппаратной платформой. Это значение указывает на объем запрошенной памяти. Внутренне сервер выделяет как можно больше памяти до этого значения, но фактическое выделение может быть меньше.

    Вы можете увеличить значение для лучшей обработки индексов при чтении и множественных записях; на системе, основной функцией которой является запуск MySQL с использованием хранилища MyISAM, 25% от общей памяти машины — приемлемое значение для этой переменной. Однако следует учитывать, что если вы сделаете значение слишком большим (например, более 50% от общей памяти машины), ваша система может начать кэширование и работать очень медленно. Это связано с тем, что MySQL полагается на операционную систему для кэширования файловой системы при чтении данных, поэтому необходимо оставить место для кэша файловой системы. Также следует учесть потребности памяти любых других хранилищ, которые вы можете использовать помимо MyISAM.

    Для еще большей скорости при одновременной записи многих строк используйте LOCK TABLES. См. Раздел 10.2.5.1, «Оптимизация операторов INSERT».

    Вы можете проверить производительность кэша ключей, выдав оператор SHOW STATUS и изучив переменные состояния Key_read_requests, Key_reads, Key_write_requests и Key_writes. (См. Раздел 15.7.7, «Операторы SHOW».) Отношение Key_reads/Key_read_requests обычно должно быть меньше 0,01. Отношение Key_writes/Key_write_requests обычно близко к 1, если вы в основном используете обновления и удаления, но может быть намного меньше, если вы склонны выполнять обновления, влияющие на много строк одновременно, или если вы используете опцию таблицы DELAY_KEY_WRITE.

    Долю используемой памяти кэша ключей можно определить, используя key_buffer_size в сочетании с переменной состояния Key_blocks_unused и размером блока буфера, доступным из системной переменной key_cache_block_size:

    1 - ((Key_blocks_unused * key_cache_block_size) / key_buffer_size)
    

    Это приблизительное значение, поскольку для внутренних административных структур выделяется некоторое пространство в кэше ключей. Факторы, влияющие на объем накладных расходов для этих структур, включают размер блока и размер указателя. По мере увеличения размера блока процент кэша ключей, потраченный на накладные расходы, имеет тенденцию к снижению. Более крупные блоки приводят к меньшему числу операций чтения (потому что больше ключей получается за одно чтение), но, наоборот, увеличивается число чтений ключей, которые не проверяются (если не все ключи в блоке не релевантны запросу).

    Возможно создание нескольких MyISAM кэшей ключей. Ограничение размера в 4 ГБ применяется к каждому кэшу индивидуально, а не в целом. См. Раздел 10.10.2, «Кэш ключей MyISAM».

  • key_cache_age_threshold

    Формат командной строки --key-cache-age-threshold=#
    Системная переменная key_cache_age_threshold
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 300
    Минимальное значение 100
    Максимальное значение (64-битные платформы) 18446744073709551516
    Максимальное значение (32-битные платформы) 4294967196
    Размер блока 100

    Это значение управляет понижением буферов из горячего подсписка кэша ключей в теплый подсписк. Более низкие значения приводят к более быстрому понижению. Минимальное значение — 100. Значение по умолчанию — 300. См. Раздел 10.10.2, «Кэш ключей MyISAM».

  • key_cache_block_size

    Формат командной строки --key-cache-block-size=#
    Системная переменная key_cache_block_size
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 1024
    Минимальное значение 512
    Максимальное значение 16384
    Единица измерения байты
    Размер блока 512

    Размер блоков в кэше ключей в байтах. Значение по умолчанию — 1024. См. Раздел 10.10.2, «Кэш ключей MyISAM».

  • key_cache_division_limit

    Формат командной строки --key-cache-division-limit=#
    Системная переменная key_cache_division_limit
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 100
    Минимальное значение 1
    Максимальное значение 100

    Точка разделения между горячим и теплым подсписками списка буфера кэша ключей. Значение — процент списка буфера, используемого для теплого подсписка. Допустимые значения — от 1 до 100. Значение по умолчанию — 100. См. Раздел 10.10.2, «Кэш ключей MyISAM».

  • large_files_support

    Переменная системы large_files_support
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Булево

    Определяет, был ли mysqld скомпилирован с опциями для поддержки больших файлов.

  • large_pages

    Формат командной строки --large-pages[={OFF|ON}]
    Переменная системы large_pages
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Специфичная для платформы Linux
    Тип Булево
    Значение по умолчанию OFF

    Определяет, включена ли поддержка больших страниц (через опцию --large-pages). См. Раздел 10.12.3.3, «Включение поддержки больших страниц».

  • large_page_size

    Переменная системы large_page_size
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Целое
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 65535
    Единицы измерения байты

    При включенной поддержке больших страниц отображается размер страниц памяти. Поддержка больших страниц памяти поддерживается только на Linux; на других платформах значение этой переменной всегда 0. См. Раздел 10.12.3.3, «Включение поддержки больших страниц».

  • last_insert_id

    Возвращаемое значение из LAST_INSERT_ID(). Оно хранится в двоичном журнале, когда вы используете LAST_INSERT_ID() в операторе, обновляющем таблицу. Установка этой переменной не обновляет значение, возвращаемое функцией C API.

  • lc_messages

    Формат командной строки --lc-messages=name
    Переменная системы lc_messages
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Строка
    Значение по умолчанию en_US

    Язык для сообщений об ошибках. По умолчанию - en_US. Сервер преобразует аргумент в имя языка и объединяет его со значением lc_messages_dir для определения местоположения файла сообщений об ошибках. См. Раздел 12.12, «Установка языка сообщений об ошибках».

  • lc_messages_dir

    Формат командной строки --lc-messages-dir=dir_name
    Переменная системы lc_messages_dir
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Имя каталога

    Каталог, где находятся сообщения об ошибках. Сервер использует значение совместно со значением lc_messages для определения местоположения файла сообщений об ошибках. См. Раздел 12.12, «Установка языка сообщений об ошибках».

  • lc_time_names

    Формат командной строки --lc-time-names=value
    Переменная системы lc_time_names
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Строка

    Эта переменная определяет локаль, которая управляет языком отображения имен и сокращений дней и месяцев. Эта переменная влияет на вывод функций DATE_FORMAT(), DAYNAME() и MONTHNAME(). Имена локалей — значения в стиле POSIX, такие как 'ja_JP' или 'pt_BR'. Значение по умолчанию — 'en_US', независимо от локальной настройки вашей системы. Дополнительная информация приведена в Разделе 12.16, «Поддержка локалей MySQL Server».

  • license

    Переменная системы license
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Строка
    Значение по умолчанию GPL

    Тип лицензии сервера.

  • local_infile

    Формат командной строки --local-infile[={OFF|ON}]
    Переменная системы local_infile
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Эта переменная управляет возможностью сервера выполнять LOCAL для операторов LOAD DATA. В зависимости от значения local_infile, сервер отклоняет или разрешает загрузку локальных данных клиентами, у которых включена опция LOCAL на стороне клиента.

    Для явного запрета или разрешения сервером операторов LOAD DATA LOCAL (независимо от конфигурации клиентских программ и библиотек во время сборки или выполнения), запустите mysqld с local_infile соответственно отключенной или включенной. local_infile также можно установить во время выполнения. Дополнительная информация приведена в Разделе 8.1.6, «Вопросы безопасности для LOAD DATA LOCAL».

  • lock_wait_timeout

    Формат командной строки --lock-wait-timeout=#
    Переменная системы lock_wait_timeout
    Область действия Глобальная, сессия
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Целое число
    Значение по умолчанию 31536000
    Минимальное значение 1
    Максимальное значение 31536000
    Единица измерения секунды

    Эта переменная задает таймаут в секундах для попыток получения блокировок метаданных. Допустимые значения находятся в диапазоне от 1 до 31536000 (1 год). Значение по умолчанию — 31536000.

    Этот таймаут применяется ко всем операторам, использующим блокировки метаданных. Сюда относятся операции DML и DDL над таблицами, представлениями, хранимыми процедурами и хранимыми функциями, а также операторы LOCK TABLES, FLUSH TABLES WITH READ LOCK и HANDLER.

    Этот таймаут не применяется к неявным обращениям к системным таблицам в базе данных mysql, таким как таблицы разрешений, изменённые операторами GRANT или REVOKE, или операторами записи в таблицы. Таймаут применяется к системным таблицам, к которым обращаются напрямую, например, с помощью SELECT или UPDATE.

    Значение таймаута применяется отдельно для каждой попытки блокировки метаданных. Для выполнения оператора может потребоваться более одной блокировки, поэтому оператор может блокироваться дольше, чем значение lock_wait_timeout, прежде чем будет сообщено об ошибке таймаута. При возникновении таймаута блокировки сообщается об этом.

    lock_wait_timeout также определяет время ожидания оператором LOCK INSTANCE FOR BACKUP блокировки, прежде чем отказаться от ожидания.

  • locked_in_memory

    Переменная системы locked_in_memory
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Был ли mysqld заблокирован в памяти с помощью --memlock.

  • log_error

    Формат командной строки --log-error[=file_name]
    Переменная системы log_error
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Имя файла

    Путь по умолчанию к журналу ошибок. Если целевой объект — консоль, значение равно stderr. В противном случае, целевой объект — файл, и значение log_error является именем файла. См. Раздел 7.4.2, «Журнал ошибок».

  • log_error_services

    Формат командной строки --log-error-services=value
    Переменная системы log_error_services
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Строка
    Значение по умолчанию log_filter_internal; log_sink_internal

    Компоненты, включённые в логирование ошибок. Переменная может содержать список из 0, 1 или нескольких элементов. В последнем случае элементы могут быть разделены точкой с запятой или запятой, необязательно с пробелами. Одно и то же значение не может использовать одновременно точку с запятой и запятую в качестве разделителей. Порядок компонентов важен, так как сервер выполняет компоненты в указанном порядке.

    Любой загружаемый (не встроенный) компонент, указанный в log_error_services, подключается неявно, если он не был подключён ранее. Дополнительные сведения см. в Разделе 7.4.2.1, «Настройка журнала ошибок».

  • log_error_suppression_list

    Формат командной строки --log-error-suppression-list=value
    Переменная системы log_error_suppression_list
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Строка
    Значение по умолчанию empty string

    Переменная системы log_error_suppression_list применяется к событиям, предназначенным для журнала ошибок, и указывает, какие события подавлять, когда они появляются с приоритетом WARNING или INFORMATION. Например, если определённый тип предупреждения считается нежелательным “шумом” в журнале ошибок из-за частой повторяемости, но не представляет интереса, его можно подавить. Эта переменная влияет на фильтрацию, выполняемую компонентом фильтрации журнала ошибок log_filter_internal, который включён по умолчанию (см. Раздел 7.5.3, «Компоненты журнала ошибок»). Если log_filter_internal выключен, log_error_suppression_list не имеет эффекта.

    Значение log_error_suppression_list может быть пустой строкой для отсутствия подавления, или списком одного или нескольких значений, разделённых запятыми, которые указывают коды ошибок для подавления. Коды ошибок могут быть указаны в символьной или числовой форме. Числовой код может быть указан с префиксом MY- или без него. Ведущие нули в числовой части не учитываются. Примеры допустимых форматов кода:

    ER_SERVER_SHUTDOWN_COMPLETE
    MY-000031
    000031
    MY-31
    31
    

    Символьные значения предпочтительнее числовых для удобочитаемости и переносимости. Сведения о допустимых символьных и числовых значениях ошибок см. .

    Действие log_error_suppression_list сочетается с действием log_error_verbosity. Дополнительные сведения см. в Разделе 7.4.2.5, «Фильтрация журнала ошибок на основе приоритета (log_filter_internal)».

  • log_error_verbosity

    Формат командной строки --log-error-verbosity=#
    Системная переменная log_error_verbosity
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 2
    Минимальное значение 1
    Максимальное значение 3

    Системная переменная log_error_verbosity определяет подробность обработки событий, предназначенных для журнала ошибок. Эта переменная влияет на фильтрацию, выполняемую компонентом фильтра журнала ошибок log_filter_internal, который включен по умолчанию (см. Раздел 7.5.3, «Компоненты журнала ошибок»). Если log_filter_internal отключён, log_error_verbosity не оказывает никакого влияния.

    События, предназначенные для журнала ошибок, имеют приоритет ERROR, WARNING или INFORMATION. log_error_verbosity управляет подробностью, основываясь на приоритетах сообщений, которые разрешено записывать в журнал, как показано в следующей таблице.

    Значение log_error_verbosity Разрешенные приоритеты сообщений
    1 ERROR
    2 ERROR, WARNING
    3 ERROR, WARNING, INFORMATION

    Также существует приоритет SYSTEM. Системные сообщения о не-ошибочных ситуациях печатаются в журнале ошибок независимо от значения log_error_verbosity. Эти сообщения включают сообщения о запуске и завершении работы, а также некоторые существенные изменения настроек.

    Влияние log_error_verbosity сочетается с влиянием log_error_suppression_list. Дополнительную информацию см. в Разделе 7.4.2.5, «Фильтрация журнала ошибок на основе приоритетов (log_filter_internal)».

  • log_output

    Формат командной строки --log-output=name
    Системная переменная log_output
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Набор
    Значение по умолчанию FILE
    Допустимые значения

    TABLE

    FILE

    NONE

    Назначение(я) для вывода общего журнала запросов и журнала медленных запросов. Значение представляет собой список одного или нескольких слов, разделённых запятыми, выбранных из TABLE, FILE и NONE. TABLE выбирает протоколирование в таблицы general_log и slow_log в схеме системы mysql. FILE выбирает протоколирование в файлы журналов. NONE отключает протоколирование. Если NONE присутствует в значении, оно имеет приоритет перед другими словами. TABLE и FILE могут быть оба указаны для выбора обеих целей вывода журнала.

    Эта переменная выбирает назначения вывода журнала, но не включает сам вывод. Для этого включите системные переменные general_log и slow_query_log. Для протоколирования FILE, переменные системы general_log_file и slow_query_log_file определяют расположения файлов журналов. Дополнительную информацию см. в Разделе 7.4.1, «Выбор мест вывода общего журнала запросов и журнала медленных запросов».

  • log_queries_not_using_indexes

    Формат командной строки --log-queries-not-using-indexes[={OFF|ON}]
    Системная переменная log_queries_not_using_indexes
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Если вы включите эту переменную при включенном журнале медленных запросов, записываются запросы, которые, как ожидается, извлекут все строки. См. Раздел 7.4.5, «Журнал медленных запросов». Это не обязательно означает, что индекс не используется. Например, запрос, использующий полный индексный поиск, использует индекс, но будет записан в журнал, потому что индекс не будет ограничивать количество строк.

  • log_raw

    Формат командной строки --log-raw[={OFF|ON}]
    Системная переменная log_raw
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Системная переменная log_raw изначально устанавливается в значение опции --log-raw. См. описание этой опции для получения дополнительной информации. Системная переменная также может быть установлена во время выполнения для изменения поведения маскирования паролей.

  • log_slow_admin_statements

    Формат командной строки --log-slow-admin-statements[={OFF|ON}]
    Системная переменная log_slow_admin_statements
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Включить медленные административные операторы в операторы, записанные в журнал медленных запросов. Административные операторы включают ALTER TABLE, ANALYZE TABLE, CHECK TABLE, CREATE INDEX, DROP INDEX, OPTIMIZE TABLE и REPAIR TABLE.

  • log_slow_extra

    Формат командной строки --log-slow-extra[={OFF|ON}]
    Системная переменная log_slow_extra
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Если журнал медленных запросов включён и место назначения вывода включает FILE, сервер записывает дополнительные поля в строки файла журнала, предоставляющие информацию о медленных операциях. См. Раздел 7.4.5, «Журнал медленных запросов». Вывод TABLE не затрагивается.

  • log_timestamps

    Формат командной строки --log-timestamps=#
    Переменная системы log_timestamps
    Область действия Глобальная
    Динамическая Да
    SET_VAR Подсказка применима Нет
    Тип Перечисление
    Значение по умолчанию UTC
    Допустимые значения

    UTC

    SYSTEM

    Эта переменная управляет часовым поясом временных меток в сообщениях, записываемых в журнал ошибок, а также в сообщениях журнала запросов и журнала медленных запросов, записываемых в файлы. Она не влияет на часовой пояс общих сообщений журнала запросов и журнала медленных запросов, записываемых в таблицы (mysql.general_log, mysql.slow_log). Строки, извлеченные из этих таблиц, могут быть преобразованы из часового пояса локальной системы в любой желаемый часовой пояс с помощью CONVERT_TZ() или путем установки сеансовой переменной системы time_zone.

    Разрешенные значения log_timestamps - это UTC (значение по умолчанию) и SYSTEM (часовой пояс локальной системы).

    Временные метки записываются в формате ISO 8601 / RFC 3339: YYYY-MM-DDThh:mm:ss.uuuuuu плюс хвостовое значение Z, указывающее на время по Гринвичу (UTC), или ±hh:mm (смещение от UTC).

  • log_throttle_queries_not_using_indexes

    Формат командной строки --log-throttle-queries-not-using-indexes=#
    Переменная системы log_throttle_queries_not_using_indexes
    Область действия Глобальная
    Динамическая Да
    SET_VAR Подсказка применима Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 4294967295

    Если log_queries_not_using_indexes включено, переменная log_throttle_queries_not_using_indexes ограничивает количество таких запросов в минуту, которые могут быть записаны в журнал медленных запросов. Значение 0 (значение по умолчанию) означает “нет ограничения”. Дополнительную информацию см. в разделе 7.4.5, «Журнал медленных запросов».

  • long_query_time

    Формат командной строки --long-query-time=#
    Переменная системы long_query_time
    Область действия Глобальная, сеанс
    Динамическая Да
    SET_VAR Подсказка применима Нет
    Тип Числовой
    Значение по умолчанию 10
    Минимальное значение 0
    Максимальное значение 31536000
    Единица измерения секунды

    Если запрос занимает более этого количества секунд, сервер увеличивает значение переменной состояния Slow_queries. Если журнал медленных запросов включен, запрос регистрируется в файле журнала медленных запросов. Это значение измеряется в реальном времени, а не в процессорном времени, поэтому запрос, который находится ниже порогового значения на слабо загруженной системе, может быть выше порога на сильно загруженной. Минимальное и значение по умолчанию для long_query_time составляют 0 и 10 соответственно. Максимальное значение составляет 31536000, что соответствует 365 дням в секундах. Значение может быть указано с точностью до микросекунд. См. раздел 7.4.5, «Журнал медленных запросов».

    Более низкие значения этой переменной приводят к тому, что больше операторов рассматриваются как длительно выполняющиеся, в результате чего требуется больше места для журнала медленных запросов. При очень малых значениях (менее одной секунды) журнал может быстро разрастись. Увеличение числа операторов, рассматриваемых как длительно выполняющиеся, также может привести к ложным срабатываниям предупреждения “Чрезмерное количество длительно выполняемых процессов” в MySQL Enterprise Monitor, особенно если включена репликация группы. По этим причинам очень малые значения следует использовать только в тестовых средах или, в производственных средах, только в течение короткого периода.

    mysqldump выполняет полное сканирование таблицы, что означает, что его запросы часто могут превышать значение long_query_time, полезное для обычных запросов. Если вы хотите исключить большинство или все запросы, сгенерированные mysqldump, из журнала медленных запросов, вы можете использовать --mysqld-long-query-time, чтобы изменить сеансовое значение переменной системы на большее значение.

  • low_priority_updates

    Формат командной строки --low-priority-updates[={OFF|ON}]
    Переменная системы low_priority_updates
    Область действия Глобальная, сеанс
    Динамическая Да
    SET_VAR Подсказка применима Нет
    Тип Булево
    Значение по умолчанию OFF

    Если установлено значение 1, все операторы INSERT, UPDATE, DELETE и LOCK TABLE WRITE ожидают, пока не появятся ожидающие операторы SELECT или LOCK TABLE READ для затронутой таблицы. Того же эффекта можно добиться, используя {INSERT | REPLACE | DELETE | UPDATE} LOW_PRIORITY ... для понижения приоритета только одного запроса. Эта переменная влияет только на движки хранения, использующие только блокировку на уровне таблиц (например, MyISAM, MEMORY и MERGE). См. раздел 10.11.2, «Проблемы блокировки таблиц».

    Установка сеансового значения этой переменной системы является ограниченной операцией. Пользователь сеанса должен иметь права, достаточные для установки ограниченных сеансовых переменных. См. раздел 7.1.9.1, «Права на переменные системы».

  • lower_case_file_system

    Переменная системы lower_case_file_system
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Подсказка применима Нет
    Тип Булево

    Эта переменная описывает чувствительность к регистру имен файлов в файловой системе, где расположен каталог данных. Значение OFF означает, что имена файлов чувствительны к регистру, ON означает, что они не чувствительны к регистру. Эта переменная является только для чтения, поскольку она отражает атрибут файловой системы, и ее изменение не повлияет на файловую систему.

  • lower_case_table_names

    Формат командной строки --lower-case-table-names[=#]
    Переменная системы lower_case_table_names
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию (macOS) 2
    Значение по умолчанию (Unix) 0
    Значение по умолчанию (Windows) 1
    Минимальное значение 0
    Максимальное значение 2

    Если установлено в 0, имена таблиц хранятся в указанном виде, и сравнения учитывают регистр. Если установлено в 1, имена таблиц хранятся в нижнем регистре на диске, и сравнения не учитывают регистр. Если установлено в 2, имена таблиц хранятся в исходном виде, но сравниваются в нижнем регистре. Этот параметр также применяется к именам баз данных и псевдонимам таблиц. Для дополнительных подробностей см. Раздел 11.2.3, «Чувствительность к регистру идентификаторов».

    Значение по умолчанию этой переменной зависит от платформы (см. lower_case_file_system). В Linux и других системах Unix значение по умолчанию равно 0. В Windows значение по умолчанию равно 1. В macOS значение по умолчанию равно 2. В Linux (и других системах Unix) установка значения в 2 не поддерживается; сервер принудительно устанавливает значение в 0.

    Не следует устанавливать lower_case_table_names в 0, если вы используете MySQL на системе, где каталог данных находится на файловой системе, нечувствительной к регистру (например, в Windows или macOS). Это недопустимая комбинация, которая может привести к зависанию при выполнении операции INSERT INTO ... SELECT ... FROM tbl_name с неправильным регистром tbl_name. При использовании MyISAM доступ к именам таблиц с разным регистром может привести к повреждению индексов.

    При попытке запуска сервера с --lower_case_table_names=0 на файловой системе, нечувствительной к регистру, выводится сообщение об ошибке, и сервер завершает работу.

    Настройка этой переменной влияет на поведение параметров фильтрации репликации относительно чувствительности к регистру. Для получения дополнительной информации см. Раздел 19.2.5, «Как серверы оценивают правила фильтрации репликации».

    Запрещено запускать сервер с настройкой lower_case_table_names, отличающейся от настройки, используемой при инициализации сервера. Это ограничение необходимо, потому что кодировки, используемые различными полями таблиц словаря данных, определяются настройкой, заданной при инициализации сервера, а перезапуск сервера с другой настройкой приведет к несоответствиям в том, как идентификаторы упорядочиваются и сравниваются.

    Поэтому необходимо настроить lower_case_table_names на нужное значение до инициализации сервера. В большинстве случаев это требует настройки lower_case_table_names в файле параметров MySQL перед первым запуском сервера MySQL. Однако при установке из APT на Debian и Ubuntu сервер инициализируется за вас, и нет возможности предварительной настройки параметра в файле параметров. Поэтому необходимо использовать утилиту debconf-set-selection перед установкой MySQL с помощью APT, чтобы включить lower_case_table_names. Для этого выполните следующую команду перед установкой MySQL с помощью APT:

    $> sudo debconf-set-selections <<< "mysql-server mysql-server/lowercase-table-names select Enabled"
    
  • mandatory_roles

    Формат командной строки --mandatory-roles=value
    Переменная системы mandatory_roles
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Строка
    Значение по умолчанию empty string

    Роли, которые сервер должен рассматривать как обязательные. По сути, эти роли автоматически предоставляются каждому пользователю, хотя установка mandatory_roles фактически не изменяет учетные записи пользователей, и предоставленные роли не отображаются в таблице системы mysql.role_edges.

    Значение переменной — это список имен ролей, разделенных запятыми. Пример:

    SET PERSIST mandatory_roles = '`role1`@`%`,`role2`,role3,role4@localhost';
    

    Для установки значения mandatory_roles в ходе выполнения требуется привилегия ROLE_ADMIN помимо привилегии SYSTEM_VARIABLES_ADMIN (или устаревшей привилегии SUPER), обычно требуемой для установки значения глобальной системной переменной в ходе выполнения.

    Имена ролей состоят из части пользователя и части хоста в формате user_name@host_name. Часть хоста, если она опущена, по умолчанию равна %. Для дополнительной информации см. Раздел 8.2.5, «Указание имен ролей».

    Значение mandatory_roles — это строка, поэтому имена пользователей и хостов, если они заключены в кавычки, должны быть написаны способом, разрешенным для заключения в кавычки внутри строковых литералов.

    Роли, указанные в значении mandatory_roles, нельзя отозвать с помощью REVOKE или удалить с помощью DROP ROLE или DROP USER.

    Чтобы предотвратить автоматическое преобразование сессий в системные сессии по умолчанию, роль, обладающая привилегией SYSTEM_USER, не может быть указана в значении переменной mandatory_roles:

    • Если mandatory_roles присваивается роль при запуске, обладающая привилегией SYSTEM_USER, сервер запишет сообщение в журнал ошибок и завершит работу.

    • Если mandatory_roles присваивается роль при выполнении, обладающая привилегией SYSTEM_USER, произойдет ошибка, и значение mandatory_roles останется неизменным.

    Обязательные роли, как и явно предоставленные роли, не вступают в силу до активации (см. Активация ролей). Во время входа в систему активация ролей происходит для всех предоставленных ролей, если системная переменная activate_all_roles_on_login включена; в противном случае или для ролей, которые в противном случае заданы как роли по умолчанию. При выполнении SET ROLE активирует роли.

    Роли, которые не существуют при присвоении к mandatory_roles, но создаются позже, могут потребовать специального обращения, чтобы считаться обязательными. Подробнее см. Определение обязательных ролей.

    SHOW GRANTS отображает обязательные роли в соответствии с правилами, описанными в разделе 15.7.7.22, «Оператор SHOW GRANTS».

  • max_allowed_packet

    Формат командной строки --max-allowed-packet=#
    Системная переменная max_allowed_packet
    Область действия Глобальная, Сеансовая
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 67108864
    Минимальное значение 1024
    Максимальное значение 1073741824
    Единица измерения байты
    Размер блока 1024

    Максимальный размер одного пакета или любой сгенерированной/промежуточной строки, или любого параметра, отправленного функцией C API. По умолчанию 64 МБ.

    Буфер сообщения пакета инициализирован значением net_buffer_length байтов, но может увеличиться до max_allowed_packet байтов при необходимости. Это значение по умолчанию небольшое, для обнаружения больших (возможно, неправильных) пакетов.

    Необходимо увеличить это значение, если используются большие столбцы BLOB или длинные строки. Оно должно быть таким же большим, как самый большой BLOB, который вы хотите использовать. Предельное значение протокола для max_allowed_packet составляет 1 ГБ. Значение должно быть кратно 1024; значения, не кратные 1024, округляются вниз до ближайшего кратного.

    При изменении размера буфера сообщений путём изменения значения переменной max_allowed_packet также необходимо изменить размер буфера на стороне клиента, если это позволяет ваша клиентская программа. Значение по умолчанию max_allowed_packet, встроенное в клиентскую библиотеку, составляет 1 ГБ, но отдельные клиентские программы могут его переопределить. Например, mysql и mysqldump имеют значения по умолчанию 16 МБ и 24 МБ соответственно. Они также позволяют изменить значение на стороне клиента, установив max_allowed_packet в командной строке или в файле параметров.

    Сеансовое значение этой переменной является только для чтения. Клиент может получить до указанного количества байтов в сеансовом значении. Однако сервер не отправляет клиенту больше байтов, чем текущее глобальное значение max_allowed_packet. (Глобальное значение может быть меньше сеансового, если глобальное значение изменяется после подключения клиента.)

  • max_connect_errors

    Формат командной строки --max-connect-errors=#
    Системная переменная max_connect_errors
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 100
    Минимальное значение 1
    Максимальное значение (64-битные платформы) 18446744073709551615
    Максимальное значение (32-битные платформы) 4294967295

    После max_connect_errors последовательных запросов подключения с одного хоста, прерванных без успешного подключения, сервер блокирует этот хост от дальнейших подключений. Если подключение с хоста установлено успешно в течение менее max_connect_errors попыток после предыдущего прерванного подключения, счётчик ошибок для хоста обнуляется. Для разблокировки заблокированных хостов очистите кэш хостов; см. Очистка кэша хостов.

  • max_connections

    Формат командной строки --max-connections=#
    Системная переменная max_connections
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 151
    Минимальное значение 1
    Максимальное значение 100000

    Максимальное разрешённое количество одновременных подключений клиентов. Максимальное эффективное значение — меньшее из эффективного значения open_files_limit - 810 и фактически установленного значения для max_connections.

    Дополнительную информацию см. в Разделе 7.1.12.1, «Интерфейсы подключения».

  • max_delayed_threads

    Формат командной строки --max-delayed-threads=#
    Устаревший Да
    Системная переменная max_delayed_threads
    Область действия Глобальная, Сеансовая
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 20
    Минимальное значение 0
    Максимальное значение 16384

    Эта системная переменная устарела (поскольку DELAYED вставки больше не поддерживаются) и может быть удалена в будущих выпусках MySQL.

    Установка сеансового значения этой системной переменной является ограниченной операцией. Пользователь сеанса должен иметь достаточные привилегии для установки ограниченных сеансовых переменных. См. Раздел 7.1.9.1, «Привилегии на системные переменные».

  • max_digest_length

    Формат командной строки --max-digest-length=#
    Системная переменная max_digest_length
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 1024
    Минимальное значение 0
    Максимальное значение 1048576
    Единица измерения байты

    Максимальное количество байт памяти, резервируемых для каждого сеанса для вычисления нормализованных дайджестов операторов. После использования этого объёма пространства во время вычисления дайджеста происходит усечение: дальнейшие токены из разобранного оператора не собираются и не учитываются в его значении дайджеста. Операторы, которые отличаются только после такого количества байтов разобранных токенов, производят один и тот же нормализованный дайджест оператора и считаются идентичными при сравнении или агрегировании для статистики дайджестов.

    Длина, используемая для вычисления нормализованного дайджеста оператора, представляет собой сумму длины нормализованного дайджеста оператора и длины дайджеста оператора. Поскольку длина дайджеста оператора всегда равна 64, это эквивалентно LENGTH (STATEMENT_DIGEST_TEXT(statement) ) + 64. Это означает, что, когда значение max_digest_length равно 1024 (по умолчанию), максимальная длина нормализованного оператора SQL до усечения фактически составляет 960 байт.

    Предупреждение

    Установка max_digest_length в ноль отключает генерацию дайджестов, что также отключает функциональность сервера, требующую дайджестов, например, MySQL Enterprise Firewall.

    Уменьшение значения max_digest_length уменьшает использование памяти, но приводит к тому, что значение дайджеста большего количества операторов становится неразличимым, если они отличаются только в конце. Увеличение значения позволяет различать более длинные операторы, но увеличивает использование памяти, особенно для рабочих нагрузок, которые включают большое количество одновременных сеансов (сервер выделяет max_digest_length байт на сеанс).

    Парсер использует эту системную переменную в качестве ограничения на максимальную длину нормализованных дайджестов операторов, которые он вычисляет. Схема производительности, если она отслеживает дайджесты операторов, создаёт копию значения дайджеста, используя системную переменную performance_schema_max_digest_length в качестве ограничения на максимальную длину дайджестов, которые она хранит. Следовательно, если performance_schema_max_digest_length меньше, чем max_digest_length, значения дайджестов, хранящиеся в Схеме производительности, усекаются по отношению к исходным значениям дайджестов.

    Для получения дополнительной информации о дайджестировании операторов см. Раздел 29.10, «Дайджесты операторов и выборка схемы производительности».

  • max_error_count

    Формат командной строки --max-error-count=#
    Системная переменная max_error_count
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Целое число
    Значение по умолчанию 1024
    Минимальное значение 0
    Максимальное значение 65535

    Максимальное количество сообщений об ошибках, предупреждениях и информации, которые должны храниться для отображения операторами SHOW ERRORS и SHOW WARNINGS. Это то же самое, что и количество областей условий в области диагностики, и, следовательно, количество условий, которые могут быть проверены с помощью GET DIAGNOSTICS.

    Установка значения сеанса этой системной переменной является ограниченной операцией. Пользователь сеанса должен иметь права, достаточные для установки ограниченных переменных сеанса. См. Раздел 7.1.9.1, «Привилегии системных переменных».

  • max_execution_time

    Формат командной строки --max-execution-time=#
    Системная переменная max_execution_time
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 4294967295
    Единица измерения миллисекунды

    Тайм-аут выполнения для операторов SELECT в миллисекундах. Если значение равно 0, тайм-ауты не включены.

    max_execution_time применяется следующим образом:

    • Глобальное значение max_execution_time задаёт значение по умолчанию для значения сеанса для новых подключений. Значение сеанса применяется к SELECT выполненным в сеансе, которые не включают подсказку оптимизатора MAX_EXECUTION_TIME(N) или для которых N равно 0.

    • max_execution_time применяется к операторам SELECT только для чтения. Операторы, которые не являются операторами только для чтения, — это те, которые вызывают хранимую функцию, которая изменяет данные в качестве побочного эффекта.

    • max_execution_time игнорируется для операторов SELECT в хранимых программах.

  • max_heap_table_size

    Формат командной строки --max-heap-table-size=#
    Системная переменная max_heap_table_size
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Целое число
    Значение по умолчанию 16777216
    Минимальное значение 16384
    Максимальное значение (64-битные платформы) 18446744073709550592
    Максимальное значение (32-битные платформы) 4294966272
    Единица измерения байты
    Размер блока 1024

    Эта переменная устанавливает максимальный размер, до которого разрешено увеличивать созданные пользователем таблицы MEMORY. Значение переменной используется для вычисления значений MEMORY таблицы MAX_ROWS.

    Установка этой переменной не влияет ни на одну существующую таблицу MEMORY, если только таблица не будет пересоздана с помощью оператора, такого как CREATE TABLE, или изменена с помощью ALTER TABLE или TRUNCATE TABLE. Перезапуск сервера также устанавливает максимальный размер существующих таблиц MEMORY в глобальное значение max_heap_table_size.

    Эта переменная также используется в сочетании с tmp_table_size для ограничения размера внутренних таблиц в памяти. См. Раздел 10.4.4, «Использование внутренних временных таблиц в MySQL».

    max_heap_table_size не реплицируется. См. Раздел 19.5.1.21, «Репликация и таблицы MEMORY», и Раздел 19.5.1.39, «Репликация и переменные» для получения дополнительной информации.

  • max_insert_delayed_threads

    Устарело Да
    Системная переменная max_insert_delayed_threads
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 20
    Максимальное значение 16384

    Эта переменная является синонимом для max_delayed_threads. Как и max_delayed_threads, она устарела (потому что DELAYED вставки не поддерживаются) и может быть удалена в будущих выпусках MySQL.

    Установка значения сеанса этой системной переменной является ограниченной операцией. Пользователь сеанса должен иметь права, достаточные для установки ограниченных переменных сеанса. См. Раздел 7.1.9.1, «System Variable Privileges».

  • max_join_size

    Формат командной строки --max-join-size=#
    Системная переменная max_join_size
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Целое число
    Значение по умолчанию 18446744073709551615
    Минимальное значение 1
    Максимальное значение 18446744073709551615

    Это представляет собой ограничение на максимальное количество обращений к строкам в базовых таблицах, выполняемых соединением. Если оценка сервера указывает, что из базовых таблиц необходимо прочитать больше строк, чем max_join_size, то оператор отклоняется с ошибкой.

    Установка этой переменной в значение, отличное от DEFAULT, сбрасывает значение sql_big_selects в 0. Если вы снова установите значение sql_big_selects, переменная max_join_size игнорируется.

  • max_length_for_sort_data

    Формат командной строки --max-length-for-sort-data=#
    Устарело Да
    Системная переменная max_length_for_sort_data
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Целое число
    Значение по умолчанию 4096
    Минимальное значение 4
    Максимальное значение 8388608
    Единица измерения байты

    Эта переменная устарела и не оказывает никакого влияния в MySQL 8.4.

  • max_points_in_geometry

    Формат командной строки --max-points-in-geometry=#
    Системная переменная max_points_in_geometry
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Целое число
    Значение по умолчанию 65536
    Минимальное значение 3
    Максимальное значение 1048576

    Максимальное значение аргумента points_per_circle для функции ST_Buffer_Strategy().

  • max_prepared_stmt_count

    Формат командной строки --max-prepared-stmt-count=#
    Системная переменная max_prepared_stmt_count
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 16382
    Минимальное значение 0
    Максимальное значение 4194304

    Эта переменная ограничивает общее количество подготовленных операторов на сервере. Она может использоваться в средах, где существует потенциальная угроза атак типа «отказ в обслуживании», основанных на исчерпании памяти сервера путем подготовки огромного количества операторов. Если значение установлено ниже текущего количества подготовленных операторов, существующие операторы не затрагиваются и могут использоваться, но новые операторы не могут быть подготовлены, пока текущее количество не упадет ниже предела. Установка значения 0 отключает подготовленные операторы.

  • max_seeks_for_key

    Формат командной строки --max-seeks-for-key=#
    Системная переменная max_seeks_for_key
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Целое число
    Значение по умолчанию (Windows) 4294967295
    Значение по умолчанию (Другие, 64-разрядные платформы) 18446744073709551615
    Значение по умолчанию (Другие, 32-разрядные платформы) 4294967295
    Минимальное значение 1
    Максимальное значение (Windows) 4294967295
    Максимальное значение (Другие, 64-разрядные платформы) 18446744073709551615
    Максимальное значение (Другие, 32-разрядные платформы) 4294967295

    Ограничивает предполагаемое максимальное количество поисков при поиске строк на основе ключа. Оптимизатор MySQL предполагает, что при поиске совпадающих строк в таблице путем сканирования индекса требуется не более этого количества поисков по ключу, независимо от фактической кардинальности индекса (см. Раздел 15.7.7.23, «SHOW INDEX Statement»). Установив это значение на низкое значение (например, 100), вы можете заставить MySQL предпочитать индексы вместо сканирования таблиц.

  • max_sort_length

    Формат командной строки --max-sort-length=#
    Системная переменная max_sort_length
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Целое число
    Значение по умолчанию 1024
    Минимальное значение 4
    Максимальное значение 8388608
    Единица измерения байты

    Количество байтов, используемых при сортировке строковых значений, использующих PAD SPACE сортировки. Сервер использует только первые max_sort_length байта любого такого значения и игнорирует остальное. Следовательно, такие значения, которые отличаются только после первых max_sort_length байтов, сравниваются как равные для GROUP BY, ORDER BY и DISTINCT операций. (Это поведение отличается от предыдущих версий MySQL, где этот параметр применялся ко всем значениям, используемым в сравнениях.)

    Увеличение значения max_sort_length может потребовать увеличения значения sort_buffer_size также. Подробнее см. Раздел 10.2.1.16, «ORDER BY Optimization»

  • max_sp_recursion_depth

    Формат командной строки --max-sp-recursion-depth[=#]
    Системная переменная max_sp_recursion_depth
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 255

    Количество раз, которое любая хранимая процедура может быть вызвана рекурсивно. Значение по умолчанию для этого параметра равно 0, что полностью отключает рекурсию в хранимых процедурах. Максимальное значение равно 255.

    Рекурсия хранимых процедур увеличивает потребность в пространстве стека потока. Если вы увеличите значение max_sp_recursion_depth, может потребоваться увеличить размер стека потока, увеличив значение thread_stack при запуске сервера.

  • max_user_connections

    Формат командной строки --max-user-connections=#
    Системная переменная max_user_connections
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 4294967295

    Максимальное количество одновременных подключений, разрешенных для любой учетной записи пользователя MySQL. Значение 0 (по умолчанию) означает “без ограничения.”

    Эта переменная имеет глобальное значение, которое можно установить при запуске сервера или во время его работы. Она также имеет значение сессии только для чтения, которое указывает на эффективное ограничение одновременных подключений, применимое к учетной записи, связанной с текущей сессией. Значение сессии инициализируется следующим образом:

    • Если учетная запись пользователя имеет ненулевое ограничение ресурса MAX_USER_CONNECTIONS, значение сессии max_user_connections устанавливается в это ограничение.

    • В противном случае значение сессии max_user_connections устанавливается в глобальное значение.

    Ограничения ресурсов учетной записи задаются с помощью оператора CREATE USER или ALTER USER. См. Раздел 8.2.21, «Установка ограничений ресурсов учетной записи».

  • max_write_lock_count

    Формат командной строки --max-write-lock-count=#
    Системная переменная max_write_lock_count
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию (Windows) 4294967295
    Значение по умолчанию (Другие, 64-разрядные платформы) 18446744073709551615
    Значение по умолчанию (Другие, 32-разрядные платформы) 4294967295
    Минимальное значение 1
    Максимальное значение (Windows) 4294967295
    Максимальное значение (Другие, 64-разрядные платформы) 18446744073709551615
    Максимальное значение (Другие, 32-разрядные платформы) 4294967295

    После такого количества блокировок на запись разрешить обработку некоторых ожидающих запросов на блокировку чтения между ними. Запросы на блокировку записи имеют более высокий приоритет, чем запросы на блокировку чтения. Однако, если max_write_lock_count установлено в какое-либо низкое значение (скажем, 10), запросы на блокировку чтения могут быть предпочтительнее ожидающих запросов на блокировку записи, если запросы на блокировку чтения уже были пропущены в пользу 10 запросов на блокировку записи. Обычно такое поведение не происходит, потому что max_write_lock_count по умолчанию имеет очень большое значение.

  • mecab_rc_file

    Формат командной строки --mecab-rc-file=file_name
    Системная переменная mecab_rc_file
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Имя файла

    Параметр mecab_rc_file используется при настройке анализатора полного текста MeCab.

    Параметр mecab_rc_file определяет путь к конфигурационному файлу mecabrc, который является конфигурационным файлом для MeCab. Параметр доступен только для чтения и может быть установлен только при запуске. Конфигурационный файл mecabrc необходим для инициализации MeCab.

    Для получения информации об анализаторе полного текста MeCab см. Раздел 14.9.9, «Плагин анализатора полного текста MeCab».

    Для получения информации о параметрах, которые можно указать в конфигурационном файле MeCab mecabrc, обратитесь к документации MeCab на сайте Google Developers.

  • min_examined_row_limit

    Формат командной строки --min-examined-row-limit=#
    Системная переменная min_examined_row_limit
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение (64-разрядные платформы) 18446744073709551615
    Максимальное значение (32-разрядные платформы) 4294967295

    Запросы, которые просматривают меньше этого количества строк, не регистрируются в журнале медленных запросов.

    Установка значения сессии этой системной переменной является ограниченной операцией. Пользователь сессии должен иметь права, достаточные для установки ограниченных переменных сессии. См. Раздел 7.1.9.1, «Привилегии системных переменных».

  • myisam_data_pointer_size

    Формат командной строки --myisam-data-pointer-size=#
    Системная переменная myisam_data_pointer_size
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 6
    Минимальное значение 2
    Максимальное значение 7
    Единица измерения байты

    Размер указателя по умолчанию в байтах, который будет использоваться CREATE TABLE для таблиц MyISAM, если не указан параметр MAX_ROWS. Эта переменная не может быть меньше 2 или больше 7. Значение по умолчанию равно 6. См. Раздел B.3.2.10, «Таблица заполнена».

  • myisam_max_sort_file_size

    Командная строка --myisam-max-sort-file-size=#
    Системная переменная myisam_max_sort_file_size
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию (Windows) 2146435072
    Значение по умолчанию (другие, 64-битные платформы) 9223372036853727232
    Значение по умолчанию (другие, 32-битные платформы) 2147483648
    Минимальное значение 0
    Максимальное значение (Windows) 2146435072
    Максимальное значение (другие, 64-битные платформы) 9223372036853727232
    Максимальное значение (другие, 32-битные платформы) 2147483648
    Единица измерения байты

    Максимальный размер временного файла, который MySQL разрешено использовать при пересоздании индекса MyISAM (во время REPAIR TABLE, ALTER TABLE или LOAD DATA). Если размер файла превысит это значение, индекс создается с использованием кэша ключей, что медленнее. Значение задается в байтах.

    Если файлы индексов MyISAM превышают этот размер, и место на диске доступно, увеличение значения может улучшить производительность. Необходимо наличие свободного места на файловой системе, содержащей каталог, где расположен исходный файл индекса.

  • myisam_mmap_size

    Командная строка --myisam-mmap-size=#
    Системная переменная myisam_mmap_size
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию (64-битные платформы) 18446744073709551615
    Значение по умолчанию (32-битные платформы) 4294967295
    Минимальное значение 7
    Максимальное значение (64-битные платформы) 18446744073709551615
    Максимальное значение (32-битные платформы) 4294967295
    Единица измерения байты

    Максимальный объем памяти для использования при отображении в памяти сжатых файлов MyISAM. Если используется много сжатых таблиц MyISAM, значение можно уменьшить, чтобы снизить вероятность проблем с подкачкой памяти.

  • myisam_recover_options

    Командная строка --myisam-recover-options[=list]
    Системная переменная myisam_recover_options
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Перечисление
    Значение по умолчанию OFF
    Допустимые значения

    OFF

    DEFAULT

    BACKUP

    FORCE

    QUICK

    Установите режим восстановления двигателя хранения MyISAM. Значение переменной — любая комбинация значений OFF, DEFAULT, BACKUP, FORCE или QUICK. При указании нескольких значений разделяйте их запятыми. Указание переменной без значения при запуске сервера эквивалентно указанию DEFAULT, а явное указание значения "" отключает восстановление (так же, как и значение OFF). При включенном восстановлении каждый раз, когда mysqld открывает таблицу MyISAM, он проверяет, помечена ли таблица как аварийно завершённая или не была закрыта должным образом. (Последний вариант работает только в том случае, если вы работаете с отключенным внешним блокированием.) В этом случае mysqld выполняет проверку таблицы. Если таблица повреждена, mysqld пытается ее восстановить.

    Следующие параметры влияют на работу восстановления.

    Параметр Описание
    OFF Без восстановления.
    DEFAULT Восстановление без резервного копирования, принудительного режима или быстрой проверки.
    BACKUP Если файл данных был изменён во время восстановления, сохраните резервную копию файла tbl_name.MYD как tbl_name-datetime.BAK.
    FORCE Выполнять восстановление даже если мы потеряем более одной строки из файла .MYD.
    QUICK Не проверять строки в таблице, если нет блоков удаления.

    Перед тем, как сервер автоматически восстановит таблицу, он запишет запись о восстановлении в журнал ошибок. Если вы хотите иметь возможность восстановиться от большинства проблем без вмешательства пользователя, используйте параметры BACKUP,FORCE. Это принудительно выполняет восстановление таблицы, даже если некоторые строки будут удалены, но сохраняет старый файл данных в качестве резервной копии, чтобы вы могли позже изучить, что произошло.

    См. Раздел 18.2.1, «Параметры запуска MyISAM».

  • myisam_sort_buffer_size

    Командная строка --myisam-sort-buffer-size=#
    Системная переменная myisam_sort_buffer_size
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 8388608
    Минимальное значение 4096
    Максимальное значение (64-битные платформы) 18446744073709551615
    Максимальное значение (32-битные платформы) 4294967295
    Единица измерения байты

    Размер буфера, выделяемого при сортировке индексов MyISAM во время REPAIR TABLE или при создании индексов с помощью CREATE INDEX или ALTER TABLE.

  • myisam_stats_method

    Командная строка --myisam-stats-method=name
    Системная переменная myisam_stats_method
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Перечисление
    Значение по умолчанию nulls_unequal
    Допустимые значения

    nulls_unequal

    nulls_equal

    nulls_ignored

    Как сервер обрабатывает значения NULL при сборе статистики о распределении значений индексов для таблиц MyISAM. Эта переменная имеет три возможных значения: nulls_equal, nulls_unequal и nulls_ignored. Для nulls_equal все значения индекса NULL считаются равными и образуют одну группу значений, размер которой равен количеству NULL значений. Для nulls_unequal значения NULL считаются неравными, и каждое NULL образует отдельную группу значений размером 1. Для nulls_ignored значения NULL игнорируются.

    Способ генерации статистики таблиц влияет на то, как оптимизатор выбирает индексы для выполнения запросов, как описано в Разделе 10.3.8, «Сбор статистики по индексам InnoDB и MyISAM».

  • myisam_use_mmap

    Командная строка --myisam-use-mmap[={OFF|ON}]
    Системная переменная myisam_use_mmap
    Область Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Использовать кэширование в памяти для чтения и записи MyISAM таблиц.

  • mysql_native_password_proxy_users

    Командная строка --mysql-native-password-proxy-users[={OFF|ON}]
    Устарело Да
    Системная переменная mysql_native_password_proxy_users
    Область Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Эта переменная управляет тем, поддерживает ли встроенный модуль аутентификации mysql_native_password (устарел) прокси-пользователей. Она не действует, если не включена системная переменная check_proxy_users и модуль mysql_native_password. Подробности о прокси-пользователях см. в разделе 8.2.19, «Прокси-пользователи».

  • named_pipe

    Командная строка --named-pipe[={OFF|ON}]
    Системная переменная named_pipe
    Область Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Специфично для платформы Windows
    Тип Булево
    Значение по умолчанию OFF

    (Только Windows.) Указывает, поддерживает ли сервер подключения через именованные каналы.

  • named_pipe_full_access_group

    Командная строка --named-pipe-full-access-group=value
    Системная переменная named_pipe_full_access_group
    Область Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Специфично для платформы Windows
    Тип Строка
    Значение по умолчанию empty string
    Допустимые значения

    empty string

    valid Windows local group name

    *everyone*

    (Только Windows.) Уровень доступа клиентов к именованному каналу, созданному MySQL-сервером, настроен на минимально необходимое для успешной связи, когда системная переменная named_pipe включена для поддержки подключений через именованные каналы. Некоторые программы-клиенты MySQL могут открывать подключения через именованные каналы без дополнительной настройки; тем не менее, другие программы-клиенты могут все еще требовать полного доступа для открытия подключения через именованный канал.

    Эта переменная задает имя локальной группы Windows, члены которой имеют достаточный доступ, предоставленный MySQL-сервером, для использования клиентов именованных каналов. Значение по умолчанию — пустая строка, что означает, что ни один пользователь Windows не имеет полного доступа к именованному каналу.

    Можно создать новое имя локальной группы Windows (например, mysql_access_client_users) и использовать его для замены значения по умолчанию, когда это абсолютно необходимо. В этом случае ограничьте членство в группе минимально необходимым количеством пользователей, удаляя пользователей из группы при обновлении программного обеспечения клиентов. Пользователи, не являющиеся членами группы, которые пытаются подключиться к MySQL с соответствующим клиентом именованного канала, получают отказ в доступе, пока администратор Windows не добавит пользователя в группу. Новые пользователи должны выйти из системы и снова войти в систему, чтобы присоединиться к группе (требуется Windows).

    Установка значения '*everyone*' обеспечивает независимый от языка способ обращения к группе «Все» в Windows. Группа «Все» по умолчанию не защищена.

  • net_buffer_length

    Командная строка --net-buffer-length=#
    Системная переменная net_buffer_length
    Область Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 16384
    Минимальное значение 1024
    Максимальное значение 1048576
    Единица байты
    Размер блока 1024

    Каждый поток клиента связан с буфером подключения и результата. Оба начинаются с размера, заданного net_buffer_length, но динамически увеличиваются до max_allowed_packet байт по мере необходимости. Буфер результата уменьшается до net_buffer_length после каждой SQL-команды.

    Обычно эту переменную изменять не нужно, но если у вас очень мало памяти, можно установить ее в ожидаемый размер заявок, отправляемых клиентами. Если запросы превышают этот размер, буфер подключения автоматически увеличивается. Максимальное значение, до которого можно установить net_buffer_length, составляет 1 МБ.

    Сеансовое значение этой переменной только для чтения.

  • net_read_timeout

    Командная строка --net-read-timeout=#
    Системная переменная net_read_timeout
    Область Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 30
    Минимальное значение 1
    Максимальное значение 31536000
    Единица секунды

    Количество секунд ожидания дополнительных данных от подключения перед прерыванием чтения. При чтении сервером данных от клиента, net_read_timeout задает время ожидания прерывания чтения. При записи сервером данных клиенту, net_write_timeout задает время ожидания прерывания записи. См. также replica_net_timeout.

  • net_retry_count

    Командная строка --net-retry-count=#
    Системная переменная net_retry_count
    Область Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 10
    Минимальное значение 1
    Максимальное значение (64-битные платформы) 18446744073709551615
    Максимальное значение (32-битные платформы) 4294967295

    Если чтение или запись в коммуникационный порт прервано, повторить попытку столько раз, прежде чем отказаться. Это значение следует устанавливать достаточно высоким на FreeBSD, потому что внутренние прерывания отправляются всем потокам.

  • net_write_timeout

    Формат командной строки --net-write-timeout=#
    Системная переменная net_write_timeout
    Область действия Глобальная, Сессия
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Целое число
    Значение по умолчанию 60
    Минимальное значение 1
    Максимальное значение 31536000
    Единица измерения секунды

    Количество секунд ожидания записи блока в соединение перед прерыванием записи. См. также net_read_timeout.

  • ngram_token_size

    Формат командной строки --ngram-token-size=#
    Системная переменная ngram_token_size
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применимо Нет
    Тип Целое число
    Значение по умолчанию 2
    Минимальное значение 1
    Максимальное значение 10

    Определяет размер токена n-граммы для n-граммного полносправочного анализатора. Опция ngram_token_size доступна только для чтения и может быть изменена только при запуске. Значение по умолчанию равно 2 (биграмм). Максимальное значение равно 10.

    Для получения дополнительной информации о конфигурации этой переменной, см. Раздел 14.9.8, «ngram Полносправочный анализатор».

  • offline_mode

    Формат командной строки --offline-mode[={OFF|ON}]
    Системная переменная offline_mode
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Булево
    Значение по умолчанию OFF

    В автономном режиме экземпляр MySQL отключает клиентов, если у них нет соответствующих привилегий, и не позволяет им создавать новые подключения. Клиенты, которым доступ закрыт, получают ошибку.

    Чтобы перевести сервер в автономный режим, измените значение системной переменной offline_mode с OFF на ON. Для возврата к нормальной работе измените offline_mode с ON на OFF. Для управления автономным режимом учётная запись администратора должна иметь привилегию SYSTEM_VARIABLES_ADMIN и привилегию CONNECTION_ADMIN (или устаревшую привилегию SUPER, которая охватывает обе эти привилегии). Требуется CONNECTION_ADMIN, чтобы предотвратить случайное блокирование.

    Автономный режим имеет следующие характеристики:

    • Подключенные клиенты, у которых нет привилегии CONNECTION_ADMIN (или устаревшей привилегии SUPER), отключаются при следующем запросе с соответствующей ошибкой. Отключение включает завершение выполняемых запросов и освобождение блокировок. Такие клиенты также не могут создавать новые подключения и получают соответствующую ошибку.

    • Подключенные клиенты, имеющие привилегию CONNECTION_ADMIN или SUPER, не отключаются и могут создавать новые подключения для управления сервером.

    • Если пользователь, который переводит сервер в автономный режим, не имеет привилегии SYSTEM_USER, подключенные клиенты, которые имеют привилегию SYSTEM_USER, также не отключаются. Однако эти пользователи не могут создавать новые подключения к серверу в автономном режиме, если у них также нет привилегии CONNECTION_ADMIN или SUPER. Это только существующее подключение не может быть прервано, потому что для завершения сессии или запроса, выполняемого с привилегией SYSTEM_USER, требуется привилегия SYSTEM_USER.

    • Потоки репликации разрешается продолжать применение данных на сервер.

  • old_alter_table

    Формат командной строки --old-alter-table[={OFF|ON}]
    Системная переменная old_alter_table
    Область действия Глобальная, Сессия
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Булево
    Значение по умолчанию OFF

    При включенной переменной сервер не использует оптимизированный метод обработки операции ALTER TABLE. Он возвращается к использованию временной таблицы, копированию данных, а затем переименованию временной таблицы в исходную, как в MySQL 5.0 и ранее. Для получения дополнительной информации об операции ALTER TABLE, см. Раздел 15.1.9, «Выполнение ALTER TABLE».

    ALTER TABLE ... DROP PARTITION с old_alter_table=ON перестраивает разбиение таблицы и пытается переместить данные из удалённого разбиения в другое разбиение с совместимым PARTITION ... VALUES определением. Данные, которые нельзя переместить в другое разбиение, удаляются. В более ранних выпусках ALTER TABLE ... DROP PARTITION с old_alter_table=ON удаляет данные, хранящиеся в разбиении, и удаляет разбиение.

  • open_files_limit

    Формат командной строки --open-files-limit=#
    Системная переменная open_files_limit
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 5000, with possible adjustment
    Минимальное значение 0
    Максимальное значение platform dependent

    Количество файловых дескрипторов, доступных для mysqld из операционной системы:

    • При запуске, mysqld резервирует дескрипторы с помощью setrlimit(), используя значение, запрошенное при установке этой переменной напрямую или с помощью опции --open-files-limit для mysqld_safe. Если mysqld выдает ошибку Too many open files, попробуйте увеличить значение open_files_limit. Внутренне, максимальное значение для этой переменной является максимальным беззнаковым целым числом, но фактический максимум зависит от платформы.

    • Во время выполнения, значение open_files_limit указывает количество файловых дескрипторов, фактически разрешенных для mysqld операционной системой, которое может отличаться от значения, запрошенного при запуске. Если количество файловых дескрипторов, запрошенных во время запуска, не может быть выделено, mysqld записывает предупреждение в лог ошибок.

    Эффективное значение open_files_limit основано на значении, указанном при запуске системы (если таковое имеется), и значениях max_connections и table_open_cache, используя следующие формулы:

    • 10 + max_connections + (table_open_cache * 2). Использование значений по умолчанию для этих переменных дает 8161.

      Только в Windows к этому числу добавляется 2048 (значение максимального количества файловых дескрипторов библиотеки времени выполнения C). В итоге получается 10209, опять же используя значения по умолчанию для указанных системных переменных.

    • max_connections * 5

    • Ограничение операционной системы.

    Сервер пытается получить количество файловых дескрипторов, используя максимум из этих значений, ограниченных максимальным беззнаковым целым числом. Если такое количество дескрипторов получить невозможно, сервер пытается получить столько, сколько позволяет система.

    Эффективное значение равно 0 в системах, где MySQL не может изменить количество открытых файлов.

    В Unix значение не может быть установлено больше, чем значение, отображаемое командой ulimit -n. В Linux системах, использующих systemd, значение не может быть установлено больше, чем LimitNOFILE (это DefaultLimitNOFILE, если LimitNOFILE не установлен); в противном случае, в Linux, значение open_files_limit не может превышать ulimit -n.

  • optimizer_prune_level

    Формат командной строки --optimizer-prune-level=#
    Системная переменная optimizer_prune_level
    Область видимости Глобальная, Сессия
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Целое число
    Значение по умолчанию 1
    Минимальное значение 0
    Максимальное значение 1

    Управляет эвристикой, применяемой во время оптимизации запросов для удаления менее перспективных частичных планов из пространства поиска оптимизатора. Значение 0 отключает эвристику, так что оптимизатор выполняет полный поиск. Значение 1 приводит к тому, что оптимизатор удаляет планы на основе количества строк, извлеченных промежуточными планами.

  • optimizer_search_depth

    Формат командной строки --optimizer-search-depth=#
    Системная переменная optimizer_search_depth
    Область видимости Глобальная, Сессия
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Целое число
    Значение по умолчанию 62
    Минимальное значение 0
    Максимальное значение 62

    Максимальная глубина поиска, выполняемого оптимизатором запросов. Значения, большие, чем количество отношений в запросе, приводят к лучшим планам запросов, но требуют больше времени для генерации плана выполнения запроса. Значения, меньшие, чем количество отношений в запросе, возвращают план выполнения быстрее, но полученный план может быть далек от оптимального. Если установлено значение 0, система автоматически выбирает разумное значение.

  • optimizer_switch

    Формат командной строки --optimizer-switch=value
    Системная переменная optimizer_switch
    Область видимости Глобальная, Сессия
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Множество
    Допустимые значения

    batched_key_access={on|off}

    block_nested_loop={on|off}

    condition_fanout_filter={on|off}

    derived_condition_pushdown={on|off}

    derived_merge={on|off}

    duplicateweedout={on|off}

    engine_condition_pushdown={on|off}

    firstmatch={on|off}

    hash_join={on|off}

    index_condition_pushdown={on|off}

    index_merge={on|off}

    index_merge_intersection={on|off}

    index_merge_sort_union={on|off}

    index_merge_union={on|off}

    loosescan={on|off}

    materialization={on|off}

    mrr={on|off}

    mrr_cost_based={on|off}

    prefer_ordering_index={on|off}

    semijoin={on|off}

    skip_scan={on|off}

    subquery_materialization_cost_based={on|off}

    subquery_to_derived={on|off}

    use_index_extensions={on|off}

    use_invisible_indexes={on|off}

    Системная переменная optimizer_switch позволяет управлять поведением оптимизатора. Значение этой переменной представляет собой набор флагов, каждый из которых имеет значение on или off, чтобы указать, включено или выключено соответствующее поведение оптимизатора. Эта переменная имеет глобальные и сессионные значения и может быть изменена во время выполнения. Глобальное значение по умолчанию может быть установлено при запуске сервера.

    Чтобы увидеть текущий набор флагов оптимизатора, выберите значение переменной:

    mysql> SELECT @@optimizer_switch\G
    *************************** 1. row ***************************
    @@optimizer_switch: index_merge=on,index_merge_union=on,
                        index_merge_sort_union=on,index_merge_intersection=on,
                        engine_condition_pushdown=on,index_condition_pushdown=on,
                        mrr=on,mrr_cost_based=on,block_nested_loop=on,
                        batched_key_access=off,materialization=on,semijoin=on,
                        loosescan=on,firstmatch=on,duplicateweedout=on,
                        subquery_materialization_cost_based=on,
                        use_index_extensions=on,condition_fanout_filter=on,
                        derived_merge=on,use_invisible_indexes=off,skip_scan=on,
                        hash_join=on,subquery_to_derived=off,
                        prefer_ordering_index=on,hypergraph_optimizer=off,
                        derived_condition_pushdown=on,hash_set_operations=on
    1 row in set (0.00 sec)
    

    Для получения дополнительной информации о синтаксисе этой переменной и поведении оптимизатора, которое она контролирует, см. Раздел 10.9.2, «Переключаемые оптимизации».

  • optimizer_trace

    Формат командной строки --optimizer-trace=value
    Системная переменная optimizer_trace
    Область видимости Глобальная, Сессия
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка

    Эта переменная управляет трассировкой оптимизатора. Для получения подробной информации см. Раздел 10.15, «Трассировка оптимизатора».

  • optimizer_trace_features

    Формат командной строки --optimizer-trace-features=value
    Системная переменная optimizer_trace_features
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка

    Эта переменная включает или отключает выбранные функции трассировки оптимизатора. Подробнее см. Раздел 10.15, «Трассировка оптимизатора».

  • optimizer_trace_limit

    Формат командной строки --optimizer-trace-limit=#
    Системная переменная optimizer_trace_limit
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 1
    Минимальное значение 0
    Максимальное значение 2147483647

    Максимальное количество трассировок оптимизатора для отображения. Подробнее см. Раздел 10.15, «Трассировка оптимизатора».

  • optimizer_trace_max_mem_size

    Формат командной строки --optimizer-trace-max-mem-size=#
    Системная переменная optimizer_trace_max_mem_size
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Целое число
    Значение по умолчанию 1048576
    Минимальное значение 0
    Максимальное значение 4294967295
    Единица измерения байты

    Максимальный накопленный размер хранимых трассировок оптимизатора. Подробнее см. Раздел 10.15, «Трассировка оптимизатора».

  • optimizer_trace_offset

    Формат командной строки --optimizer-trace-offset=#
    Системная переменная optimizer_trace_offset
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию -1
    Минимальное значение -2147483647
    Максимальное значение 2147483647

    Смещение трассировок оптимизатора для отображения. Подробнее см. Раздел 10.15, «Трассировка оптимизатора».

  • performance_schema_xxx

    Системные переменные Performance Schema перечислены в Разделе 29.15, «Системные переменные Performance Schema». Эти переменные могут использоваться для настройки работы Performance Schema.

  • parser_max_mem_size

    Формат командной строки --parser-max-mem-size=#
    Системная переменная parser_max_mem_size
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию (64-разрядные платформы) 18446744073709551615
    Значение по умолчанию (32-разрядные платформы) 4294967295
    Минимальное значение 10000000
    Максимальное значение (64-разрядные платформы) 18446744073709551615
    Максимальное значение (32-разрядные платформы) 4294967295
    Единица измерения байты

    Максимальный объем памяти, доступный анализатору. Значение по умолчанию не устанавливает ограничений на доступную память. Значение может быть уменьшено для защиты от ситуаций нехватки памяти, вызванных анализом длинных или сложных SQL-запросов.

  • partial_revokes

    Формат командной строки --partial-revokes[={OFF|ON}]
    Системная переменная partial_revokes
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию

    OFF (если частичных отзывов не существует)

    ON (если частичные отмены существуют)

    Включение этой переменной позволяет частично отзывать привилегии. В частности, для пользователей, имеющих привилегии на глобальном уровне, partial_revokes позволяет отозвать привилегии для определенных схем, оставляя привилегии на месте для других схем. Например, пользователь, имеющий глобальную привилегию UPDATE, может быть ограничен в использовании этой привилегии в системной схеме mysql. (Или, другими словами, пользователю разрешено использовать привилегию UPDATE во всех схемах, кроме схемы mysql.) В этом смысле глобальная привилегия пользователя UPDATE частично отозвана.

    После включения partial_revokes нельзя отключить, если у какой-либо учетной записи есть ограничения привилегий. Если такая учетная запись существует, отключение partial_revokes завершится ошибкой:

    • При попытках отключить partial_revokes при запуске сервер регистрирует сообщение об ошибке и включает partial_revokes.

    • При попытках отключить partial_revokes во время выполнения возникает ошибка, и значение partial_revokes остается неизменным.

    Чтобы отключить partial_revokes в этом случае, сначала измените каждую учетную запись, у которой частично отозваны привилегии, либо повторно предоставив привилегии, либо удалив учетную запись.

    Примечание

    При назначении привилегий включение partial_revokes приводит к тому, что MySQL интерпретирует вхождения неэкранированных символов SQL-шаблонов _ и % в именах схем как литеральные символы, точно так же, как если бы они были экранированы как \_ и \%. Поскольку это изменяет способ интерпретации привилегий MySQL, целесообразно избегать неэкранированных символов подстановки в назначениях привилегий для установок, где partial_revokes может быть включено.

    Кроме того, использование _ и % в качестве символов подстановки в предоставлениях устарело, и следует ожидать, что поддержка их будет удалена в будущей версии MySQL.

    Для получения дополнительной информации, включая инструкции по удалению частичных отзывов, см. Раздел 8.2.12, «Ограничение привилегий с помощью частичных отзывов».

  • password_history

    Формат командной строки --password-history=#
    Системная переменная password_history
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 4294967295

    Эта переменная определяет глобальную политику, контролирующую повторное использование предыдущих паролей на основе минимального требуемого количества смен паролей. Для ранее использованного пароля учетной записи эта переменная указывает количество последующих смен пароля учетной записи, которые должны произойти, прежде чем пароль может быть повторно использован. Если значение равно 0 (значение по умолчанию), ограничений на повторное использование пароля на основе количества смен паролей нет.

    Изменения этой переменной применяются немедленно ко всем учетным записям, определённым с помощью опции PASSWORD HISTORY DEFAULT.

    Глобальную политику повторного использования паролей, основанную на количестве смен, можно переопределить по желанию для отдельных учетных записей, используя опцию PASSWORD HISTORY в операторах CREATE USER и ALTER USER. См. Раздел 8.2.15, «Управление паролями».

  • password_require_current

    Формат командной строки --password-require-current[={OFF|ON}]
    Системная переменная password_require_current
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Эта переменная определяет глобальную политику, контролирующую, должны ли попытки изменить пароль учетной записи указывать текущий пароль для замены.

    Изменения этой переменной применяются немедленно ко всем учетным записям, определённым с помощью опции PASSWORD REQUIRE CURRENT DEFAULT.

    Глобальная политика обязательного подтверждения может быть переопределена по желанию для отдельных учетных записей с помощью опции PASSWORD REQUIRE в операторах CREATE USER и ALTER USER. См. Раздел 8.2.15, «Управление паролями».

  • password_reuse_interval

    Формат командной строки --password-reuse-interval=#
    Системная переменная password_reuse_interval
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 4294967295
    Единица измерения дни

    Эта переменная определяет глобальную политику, контролирующую повторное использование предыдущих паролей на основе прошедшего времени. Для ранее использованного пароля учетной записи эта переменная указывает количество дней, которые должны пройти, прежде чем пароль может быть повторно использован. Если значение равно 0 (значение по умолчанию), ограничений на повторное использование пароля на основе прошедшего времени нет.

    Изменения этой переменной применяются немедленно ко всем учетным записям, определённым с помощью опции PASSWORD REUSE INTERVAL DEFAULT.

    Глобальную политику повторного использования паролей, основанную на прошедшем времени, можно переопределить по желанию для отдельных учетных записей, используя опцию PASSWORD REUSE INTERVAL в операторах CREATE USER и ALTER USER. См. Раздел 8.2.15, «Управление паролями».

  • persisted_globals_load

    Формат командной строки --persisted-globals-load[={OFF|ON}]
    Системная переменная persisted_globals_load
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    Загружать ли сохранённые параметры конфигурации из файла mysqld-auto.cnf в каталоге данных. Сервер обычно обрабатывает этот файл при запуске после всех других файлов параметров (см. Раздел 6.2.2.2, «Использование файлов параметров»). Отключение persisted_globals_load заставляет последовательность запуска сервера пропустить mysqld-auto.cnf.

    Чтобы изменить содержимое mysqld-auto.cnf, используйте операторы SET PERSIST, SET PERSIST_ONLY и RESET PERSIST. См. Раздел 7.1.9.3, «Сохранённые системные переменные».

  • persist_only_admin_x509_subject

    Формат командной строки --persist-only-admin-x509-subject=string
    Системная переменная persist_only_admin_x509_subject
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Строка
    Значение по умолчанию empty string

    SET PERSIST и SET PERSIST_ONLY позволяют сохранять системные переменные в файле параметров mysqld-auto.cnf в каталоге данных (см. Раздел 15.7.6.1, «Синтаксис SET для присваивания переменных»). Сохранение системных переменных позволяет сохранять изменения конфигурации во время выполнения, которые влияют на последующие перезапуски сервера, что удобно для удалённого администрирования без прямого доступа к файлам параметров хоста MySQL-сервера. Однако некоторые системные переменные не могут быть сохранены или могут быть сохранены только при определенных ограничительных условиях.

    Системная переменная persist_only_admin_x509_subject указывает значение X.509 Subject сертификата SSL, которое должны иметь пользователи, чтобы иметь возможность сохранять системные переменные, ограниченные сохранением. Значение по умолчанию — пустая строка, что отключает проверку Subject, так что системные переменные, ограниченные сохранением, не могут быть сохранены никем.

    Если persist_only_admin_x509_subject не пустая, пользователи, которые подключаются к серверу с помощью зашифрованного соединения и предоставляют сертификат SSL с указанным значением Subject, могут использовать SET PERSIST_ONLY для сохранения ограниченных сохранением системных переменных. Для получения информации о системных переменных, ограниченных сохранением, и инструкций по настройке MySQL для включения persist_only_admin_x509_subject см. Раздел 7.1.9.4, «Несохраняемые и ограниченные сохранением системные переменные».

END_OF_DOCUMENT_MARKER
  • persist_sensitive_variables_in_plaintext

    Формат командной строки --persist_sensitive_variables_in_plaintext[={OFF|ON}]
    Системная переменная persist_sensitive_variables_in_plaintext
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию ON

    persist_sensitive_variables_in_plaintext управляет тем, разрешено ли серверу хранить значения конфиденциальных системных переменных в незашифрованном формате, если поддержка компонента keyring недоступна в момент, когда SET PERSIST используется для установки значения системной переменной. Он также управляет тем, может ли сервер запуститься, если зашифрованные значения не могут быть расшифрованы. Обратите внимание, что плагины keyring не поддерживают безопасное хранение конфиденциальных системных переменных; компонент keyring (см. Раздел 8.4.4, «Кольцо ключей MySQL») должен быть включен на экземпляре сервера MySQL для поддержки безопасного хранения.

    Настройка по умолчанию, ON, шифрует значения, если доступна поддержка компонента keyring, и сохраняет их незашифрованными (с предупреждением), если она недоступна. В следующий раз, когда будет установлено значение любой сохраненной системной переменной, если поддержка keyring доступна в этот момент, сервер шифрует значения любых незашифрованных конфиденциальных системных переменных. Настройка ON также позволяет серверу запускаться, если зашифрованные значения системных переменных не могут быть расшифрованы, в этом случае выдается предупреждение и используются значения по умолчанию для системных переменных. В этой ситуации их значения не могут быть изменены, пока они не будут расшифрованы.

    Наиболее безопасная настройка, OFF, означает, что значения конфиденциальных системных переменных не могут быть сохранены, если поддержка компонента keyring недоступна. Настройка OFF также означает, что сервер не запускается, если зашифрованные значения системных переменных не могут быть расшифрованы.

    Для получения дополнительной информации см. Сохранение конфиденциальных системных переменных.

  • pid_file

    Формат командной строки --pid-file=file_name
    Системная переменная pid_file
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Имя файла

    Имя пути к файлу, в котором сервер записывает свой идентификатор процесса. Сервер создает файл в каталоге данных, если только не указано абсолютное имя пути для указания другого каталога. Если вы указываете эту переменную, вы должны указать значение. Если вы не указываете эту переменную, MySQL использует значение по умолчанию host_name.pid, где host_name — это имя хост-машины.

    Файл идентификатора процесса используется другими программами, такими как mysqld_safe, для определения идентификатора процесса сервера. В Windows эта переменная также влияет на имя файла журнала ошибок по умолчанию. См. Раздел 7.4.2, «Журнал ошибок».

  • plugin_dir

    Формат командной строки --plugin-dir=dir_name
    Системная переменная plugin_dir
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Имя каталога
    Значение по умолчанию BASEDIR/lib/plugin

    Имя пути к каталогу плагинов.

    Если каталог плагинов доступен для записи сервером, пользователь может записать исполняемый код в файл в каталоге с помощью SELECT ... INTO DUMPFILE. Это можно предотвратить, сделав plugin_dir доступным только для чтения серверу или установив secure_file_priv в каталог, куда можно безопасно выполнять записи SELECT.

  • port

    Формат командной строки --port=port_num
    Системная переменная port
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 3306
    Минимальное значение 0
    Максимальное значение 65535

    Номер порта, на котором сервер прослушивает TCP/IP-подключения. Эта переменная может быть установлена с помощью параметра --port.

  • preload_buffer_size

    Формат командной строки --preload-buffer-size=#
    Системная переменная preload_buffer_size
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 32768
    Минимальное значение 1024
    Максимальное значение 1073741824
    Единица измерения байты

    Размер буфера, который выделяется при предварительной загрузке индексов.

    Установка значения сеанса этой системной переменной является ограниченной операцией. Пользователь сеанса должен иметь права, достаточные для установки ограниченных переменных сеанса. См. Раздел 7.1.9.1, «Права на системные переменные».

  • print_identified_with_as_hex

    Формат командной строки --print-identified-with-as-hex[={OFF|ON}]
    Системная переменная print_identified_with_as_hex
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию OFF

    Значения хэшей паролей, отображаемые в предложении IDENTIFIED WITH вывода из SHOW CREATE USER, могут содержать непечатаемые символы, которые оказывают негативное влияние на отображение в терминале и в других средах. Включение print_identified_with_as_hex заставляет SHOW CREATE USER отображать такие значения хэшей в виде шестнадцатеричных строк, а не в виде обычных строковых литералов. Значения хэшей, которые не содержат непечатаемых символов, по-прежнему отображаются как обычные строковые литералы, даже если эта переменная включена.

  • profiling

    Если установлено в 0 или OFF (по умолчанию), профилирование инструкций отключено. Если установлено в 1 или ON, профилирование инструкций включено, и инструкции SHOW PROFILE и SHOW PROFILES обеспечивают доступ к информации о профилировании. См. Раздел 15.7.7.33, «Инструкция SHOW PROFILES».

    Эта переменная устарела; ожидается, что она будет удалена в будущей версии MySQL.

  • profiling_history_size

    Количество инструкций, для которых следует сохранять информацию о профилировании, если включена profiling. Значение по умолчанию равно 15. Максимальное значение равно 100. Установка значения 0 фактически отключает профилирование. См. Раздел 15.7.7.33, «Инструкция SHOW PROFILES».

    Эта переменная устарела; ожидается, что она будет удалена в будущей версии MySQL.

  • protocol_compression_algorithms

    Командная строка --protocol-compression-algorithms=value
    Переменная системы protocol_compression_algorithms
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Набор
    Значение по умолчанию zlib,zstd,uncompressed
    Допустимые значения

    zlib

    zstd

    uncompressed

    Алгоритмы сжатия, разрешенные сервером для входящих соединений. Это включает соединения клиентских программ и серверов, участвующих в репликации исходных/копий или групповой репликации. Сжатие не применяется к соединениям для FEDERATED таблиц.

    protocol_compression_algorithms не управляет сжатием соединений для X Protocol. См. Раздел 22.5.5, «Сжатие соединений с X Plugin» для получения информации о работе этого механизма.

    Значение переменной представляет собой список одного или нескольких имен алгоритмов сжатия, разделенных запятыми в любом порядке, выбранных из следующих элементов (регистр не учитывается):

    • zlib: Разрешить соединения, использующие алгоритм сжатия zlib.

    • zstd: Разрешить соединения, использующие алгоритм сжатия zstd.

    • uncompressed: Разрешить несжатые соединения. Если это имя алгоритма не включено в значение protocol_compression_algorithms, сервер не разрешает несжатые соединения. Он разрешает только сжатые соединения, использующие любые другие указанные алгоритмы в значении, и нет отката к несжатым соединениям.

    Значение по умолчанию zlib,zstd,uncompressed указывает, что сервер разрешает все алгоритмы сжатия.

    Дополнительную информацию см. в Разделе 6.2.8, «Управление сжатием соединений».

  • protocol_version

    Переменная системы protocol_version
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 10
    Минимальное значение 0
    Максимальное значение 4294967295

    Версия протокола клиент/сервер, используемая сервером MySQL.

  • proxy_user

    Переменная системы proxy_user
    Область действия Сеанс
    Динамическая Нет
    SET_VAR Применяется ли подсказка Нет
    Тип Строка

    Если текущий клиент является прокси для другого пользователя, эта переменная — имя учетной записи прокси-пользователя. В противном случае эта переменная равна NULL. См. Раздел 8.2.19, «Прокси-пользователи».

  • pseudo_replica_mode

    Переменная системы pseudo_replica_mode
    Область действия Сеанс
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Булево

    pseudo_replica_mode используется для внутренних целей сервера. Он помогает правильно обрабатывать транзакции, которые произошли на более старых или более новых серверах, чем сервер, который их сейчас обрабатывает. mysqlbinlog устанавливает значение pseudo_replica_mode в true перед выполнением любых SQL-запросов.

    Установка сеансового значения pseudo_replica_mode является ограниченной операцией. Пользователь сеанса должен иметь либо привилегию REPLICATION_APPLIER (см. Раздел 19.3.3, «Проверка привилегий репликации»), либо привилегии, достаточные для установки ограниченных сеансовых переменных (см. Раздел 7.1.9.1, «Привилегии переменных системы»). Однако обратите внимание, что переменная не предназначена для установки пользователем; она устанавливается автоматически инфраструктурой репликации.

    pseudo_replica_mode оказывает следующие воздействия на обработку подготовленных XA-транзакций, которые могут быть прикреплены к сеансу обработки или откреплены от него (по умолчанию, сеанс, который выполняет XA START):

    • Если значение true, и сеанс обработки выполнил внутренний запрос BINLOG, XA-транзакции автоматически открепляются от сеанса сразу же после завершения первой части транзакции до XA PREPARE, чтобы их можно было подтвердить или откатить любым сеансом, имеющим привилегию XA_RECOVER_ADMIN.

    • Если значение false, XA-транзакции остаются прикрепленными к сеансу обработки, пока этот сеанс активен, в течение которого ни один другой сеанс не может подтвердить транзакцию. Подготовленная транзакция открепляется только при отключении сеанса или перезапуске сервера.

    pseudo_replica_mode оказывает следующие воздействия на отметку времени задержки репликации original_commit_timestamp и переменную системы original_server_version:

    • Если значение true, транзакции, которые не явно устанавливают original_commit_timestamp или original_server_version, предполагаются исходящими с другого, неизвестного сервера, поэтому значение 0, обозначающее неизвестное, присваивается как отметке времени, так и переменной системы.

    • Если значение false, транзакции, которые не явно устанавливают original_commit_timestamp или original_server_version, предполагаются исходящими с текущего сервера, поэтому текущая отметка времени и версия текущего сервера присваиваются отметке времени и переменной системы.

    pseudo_replica_mode оказывает следующие воздействия на обработку запроса, устанавливающего одну или несколько неподдерживаемых (удаленных или неизвестных) SQL-режимов:

    • Если значение true, сервер игнорирует неподдерживаемый режим и выводит предупреждение.

    • Если значение false, сервер отклоняет запрос с ошибкой.

  • pseudo_slave_mode

    Устаревшее Да
    Переменная системы pseudo_slave_mode
    Область действия Сеанс
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Булево

    Устаревший псевдоним для pseudo_replica_mode.

  • pseudo_thread_id

    Переменная сервера pseudo_thread_id
    Область Сеанс
    Динамическая Да
    SET_VAR Применимо к подсказкам Нет
    Тип Целое число
    Значение по умолчанию 2147483647
    Минимальное значение 0
    Максимальное значение 2147483647

    Эта переменная предназначена для внутреннего использования сервером.

    Предупреждение

    Изменение значения переменной сервера pseudo_thread_id в сеансе изменяет значение, возвращаемое функцией CONNECTION_ID().

    Установка значения этой переменной в сеансе — ограниченная операция. Пользователь сеанса должен обладать правами, достаточными для установки ограниченных переменных сеанса. См. Раздел 7.1.9.1, «Права на переменные сервера».

  • query_alloc_block_size

    Формат командной строки --query-alloc-block-size=#
    Переменная сервера query_alloc_block_size
    Область Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применимо к подсказкам Нет
    Тип Целое число
    Значение по умолчанию 8192
    Минимальное значение 1024
    Максимальное значение 4294966272
    Единица измерения байты
    Размер блока 1024

    Размер выделения в байтах блоков памяти, выделяемых для объектов, созданных во время разбора и выполнения операторов. При проблемах с фрагментацией памяти может помочь увеличение этого параметра.

    Размер блока для числа байтов равен 1024. Значение, которое не является точным кратным размеру блока, округляется вниз до ближайшего меньшего кратного размера блока сервером MySQL перед сохранением значения переменной сервера. Парсер допускает значения до максимального беззнакового целого значения для платформы (4294967295 или 232−1 для 32-битной системы, 18446744073709551615 или 264−1 для 64-битной системы), но фактическое максимальное значение меньше, кратно размеру блока.

  • query_prealloc_size

    Формат командной строки --query-prealloc-size=#
    Устаревший Да
    Переменная сервера query_prealloc_size
    Область Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применимо к подсказкам Нет
    Тип Целое число
    Значение по умолчанию 8192
    Минимальное значение 8192
    Максимальное значение (64-битные платформы) 18446744073709550592
    Максимальное значение (32-битные платформы) 4294966272
    Единица измерения байты
    Размер блока 1024

    query_prealloc_size устарела, и её установка не имеет эффекта; ожидается её удаление в будущих релизах MySQL.

  • rand_seed1

    Переменная сервера rand_seed1
    Область Сеанс
    Динамическая Да
    SET_VAR Применимо к подсказкам Нет
    Тип Целое число
    Значение по умолчанию N/A
    Минимальное значение 0
    Максимальное значение 4294967295

    Переменные rand_seed1 и rand_seed2 существуют только как переменные сеанса и могут быть установлены, но не считываются. Переменные (но не их значения) отображаются в выводе SHOW VARIABLES.

    Эти переменные предназначены для поддержки репликации функции RAND(). Для операторов, вызывающих RAND(), источник передаёт два значения реплике, где они используются для инициализации генератора случайных чисел. Реплика использует эти значения для установки переменных сеанса rand_seed1 и rand_seed2, чтобы функция RAND() на реплике генерировала такое же значение, как и на источнике.

  • rand_seed2

    См. описание для rand_seed1.

  • range_alloc_block_size

    Формат командной строки --range-alloc-block-size=#
    Переменная сервера range_alloc_block_size
    Область Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применимо к подсказкам Да
    Тип Целое число
    Значение по умолчанию 4096
    Минимальное значение 4096
    Максимальное значение (64-битные платформы) 18446744073709550592
    Максимальное значение 4294966272
    Единица измерения байты
    Размер блока 1024

    Размер в байтах блоков, выделяемых при выполнении оптимизации диапазона.

    Размер блока для числа байтов равен 1024. Значение, которое не является точным кратным размеру блока, округляется вниз до ближайшего меньшего кратного размера блока сервером MySQL перед сохранением значения переменной сервера. Парсер допускает значения до максимального беззнакового целого значения для платформы (4294967295 или 232−1 для 32-битной системы, 18446744073709551615 или 264−1 для 64-битной системы), но фактическое максимальное значение меньше, кратно размеру блока.

  • range_optimizer_max_mem_size

    Формат командной строки --range-optimizer-max-mem-size=#
    Переменная сервера range_optimizer_max_mem_size
    Область Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применимо к подсказкам Да
    Тип Целое число
    Значение по умолчанию 8388608
    Минимальное значение 0
    Максимальное значение 18446744073709551615
    Единица измерения байты

    Ограничение потребления памяти для оптимизатора диапазона. Значение 0 означает “нет ограничения”. Если оптимизатор рассматривает план выполнения, использующий метод диапазона доступа, но оценивает, что количество памяти, необходимое для этого метода, превысит ограничение, то он отказывается от плана и рассматривает другие планы. Подробнее см. Ограничение потребления памяти для оптимизации диапазона.

  • rbr_exec_mode

    Переменная системы rbr_exec_mode
    Область Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Перечисление
    Значение по умолчанию STRICT
    Допустимые значения

    STRICT

    IDEMPOTENT

    Для внутреннего использования mysqlbinlog. Эта переменная переключает сервер между режимом IDEMPOTENT и режимом STRICT. Режим IDEMPOTENT подавляет ошибки дублирования ключа и отсутствия ключа в операциях BINLOG, сгенерированных mysqlbinlog. Этот режим полезен при повторном применении двоичного журнала, основанного на строках, на сервере, который вызывает конфликты с существующими данными. mysqlbinlog устанавливает этот режим при указании опции --idempotent, записывая следующее в выходные данные:

    SET SESSION RBR_EXEC_MODE=IDEMPOTENT;
  • read_buffer_size

    Формат командной строки --read-buffer-size=#
    Переменная системы read_buffer_size
    Область Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Целое число
    Значение по умолчанию 131072
    Минимальное значение 8192
    Максимальное значение 2147479552
    Единица измерения байты
    Размер блока 4096

    Каждый поток, выполняющий последовательный поиск по таблице MyISAM, выделяет буфер такого размера (в байтах) для каждой таблицы, которую он сканирует. Если вы выполняете много последовательных сканирований, вам может потребоваться увеличить это значение, которое по умолчанию равно 131072. Значение этой переменной должно быть кратно 4 КБ. Если оно установлено на значение, не кратное 4 КБ, оно округляется вниз до ближайшего кратного 4 КБ.

    Этот параметр также используется в следующих контекстах для всех остальных движков хранения, за исключением InnoDB:

    • Для кэширования индексов в временном файле (не временной таблице) при сортировке строк для ORDER BY.

    • Для массовой вставки в разделы.

    • Для кэширования результатов вложенных запросов.

    read_buffer_size также используется в одном другом способе, специфичном для движка хранения: для определения размера блока памяти для таблиц MEMORY.

    select_into_buffer_size используется для буфера кэша ввода-вывода для SELECT INTO DUMPFILE и SELECT INTO OUTFILE операторов. (read_buffer_size используется для размера буфера кэша ввода-вывода во всех остальных случаях.)

    Дополнительную информацию об использовании памяти во время различных операций см. в Разделе 10.12.3.1, «Как MySQL использует память».

  • read_only

    Формат командной строки --read-only[={OFF|ON}]
    Системная переменная read_only
    Область действия Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию OFF

    Если системная переменная read_only включена, сервер разрешает только обновления от клиентов, имеющих привилегию CONNECTION_ADMIN (или устаревшую привилегию SUPER). Эта переменная отключена по умолчанию.

    Сервер также поддерживает системную переменную super_read_only (отключена по умолчанию), которая имеет следующие эффекты:

    • Если super_read_only включена, сервер запрещает обновления клиентов, даже от пользователей, имеющих привилегию CONNECTION_ADMIN или SUPER.

    • Установка super_read_only в значение ON неявно устанавливает read_only в значение ON.

    • Установка read_only в значение OFF неявно устанавливает super_read_only в значение OFF.

    Когда read_only включена и когда super_read_only включена, сервер по-прежнему разрешает следующие операции:

    • Обновления, выполняемые потоками репликации, если сервер является репликой. В настройках репликации полезно включить read_only на серверах-репликах, чтобы убедиться, что реплики принимают обновления только от исходного сервера, а не от клиентов.

    • Записи в системную таблицу mysql.gtid_executed, которая хранит GTID для выполненных транзакций, которые отсутствуют в текущем файле двоичного журнала.

    • Использование команд ANALYZE TABLE или OPTIMIZE TABLE. Цель режима только для чтения — предотвратить изменения структуры или содержимого таблиц. Анализ и оптимизация не являются такими изменениями. Это означает, например, что проверки согласованности на репликах только для чтения могут выполняться с помощью команды mysqlcheck --all-databases --analyze.

    • Использование команд FLUSH STATUS, которые всегда записываются в двоичный журнал.

    • Операции с TEMPORARY таблицами.

    • Вставки в таблицы журнала (mysql.general_log и mysql.slow_log); см. Раздел 7.4.1, «Выбирайте места назначения для вывода общего журнала запросов и журнала медленных запросов».

    • Обновления таблиц Performance Schema, такие как операции UPDATE или TRUNCATE TABLE.

    Изменения read_only на источнике репликации не реплицируются на сервера-реплики. Значение может быть установлено на реплике независимо от значения на источнике.

    Следующие условия применяются к попыткам включения read_only (включая неявные попытки, связанные с включением super_read_only):

    • Попытка завершается неудачей и возникает ошибка, если у вас есть явные блокировки (полученные с помощью LOCK TABLES) или активная транзакция.

    • Попытка блокируется, пока у других клиентов есть активные операторы, активные LOCK TABLES WRITE или активные операции фиксации, пока блокировки не будут освобождены, а операторы и транзакции не завершены. Пока попытка включения read_only ожидает, запросы других клиентов на блокировку таблиц или начало транзакций также блокируются, пока read_only не будет установлено.

    • Попытка блокируется, если есть активные транзакции, которые удерживают метаданные блокировки, пока эти транзакции не завершены.

    • read_only может быть включено, пока у вас есть глобальная блокировка чтения (полученная с помощью FLUSH TABLES WITH READ LOCK), так как это не включает блокировку таблиц.

  • read_rnd_buffer_size

    Формат командной строки --read-rnd-buffer-size=#
    Системная переменная read_rnd_buffer_size
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Целое число
    Значение по умолчанию 262144
    Минимальное значение 1
    Максимальное значение 2147483647
    Единица измерения байты

    Эта переменная используется для чтения из MyISAM таблиц и, для любого движка хранения, для оптимизации многодиапазонного чтения.

    При чтении строк из MyISAM таблицы в отсортированном порядке после операции сортировки по ключу, строки читаются через этот буфер для избежания обращений к диску. См. Раздел 10.2.1.16, «Оптимизация ORDER BY». Установка переменной в большое значение может значительно улучшить производительность ORDER BY. Однако это буфер, выделенный для каждого клиента, поэтому не следует устанавливать глобальную переменную в большое значение. Вместо этого изменяйте переменную сеанса только в тех клиентах, которым нужно запускать большие запросы.

    Дополнительную информацию об использовании памяти во время различных операций см. в Разделе 10.12.3.1, «Как MySQL использует память». Информацию об оптимизации многодиапазонного чтения см. в Разделе 10.2.1.11, «Оптимизация многодиапазонного чтения».

  • regexp_stack_limit

    Формат командной строки --regexp-stack-limit=#
    Системная переменная regexp_stack_limit
    Область действия Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 8000000
    Минимальное значение 0
    Максимальное значение 2147483647
    Единица измерения байты

    Максимальный объем памяти в байтах для внутреннего стека, используемого для операций сопоставления регулярных выражений, выполняемых функцией REGEXP_LIKE() и аналогичными функциями (см. Раздел 14.8.2, «Регулярные выражения»).

  • regexp_time_limit

    Формат командной строки --regexp-time-limit=#
    Системная переменная regexp_time_limit
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 32
    Минимальное значение 0
    Максимальное значение 2147483647

    Предельное время выполнения операций сопоставления с регулярным выражением, выполняемых функциями REGEXP_LIKE() и аналогичными (см. Раздел 14.8.2, «Регулярные выражения»). Этот предел выражается как максимальное допустимое количество шагов, выполняемых механизмом сопоставления, и, следовательно, влияет на время выполнения только косвенно. Обычно он составляет порядка миллисекунд.

  • require_row_format

    Системная переменная require_row_format
    Область действия Сеанс
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Эта переменная предназначена для внутреннего использования сервером при репликации и mysqlbinlog. Она ограничивает события DML, выполняемые в сеансе, только событиями, закодированными в формате двоичного журнала на основе строк, и создание временных таблиц недоступно. Запросы, не соответствующие ограничениям, завершаются ошибкой.

    Установка значения этой системной переменной для сеанса в ON не требует привилегий. Установка значения этой системной переменной для сеанса в OFF — это ограниченная операция, и пользователь сеанса должен иметь соответствующие привилегии. См. Раздел 7.1.9.1, «Привилегии системных переменных».

  • require_secure_transport

    Формат командной строки --require-secure-transport[={OFF|ON}]
    Системная переменная require_secure_transport
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Требуется ли для подключений клиентов к серверу использование какой-либо формы безопасной передачи данных. При включении этой переменной сервер допускает только подключения TCP/IP, зашифрованные с помощью TLS/SSL, или подключения, использующие файл сокета (в Unix) или общую память (в Windows). Сервер отклоняет попытки неуверенного подключения, которые завершаются ошибкой.

    Эта возможность дополняет требования к SSL для каждой учетной записи, которые имеют приоритет. Например, если для учетной записи задано REQUIRE SSL, включение require_secure_transport не позволяет использовать учетную запись для подключения с помощью файла сокета Unix.

    Возможно, что на сервере нет доступных безопасных каналов передачи данных. Например, сервер в Windows не поддерживает безопасных каналов передачи данных, если он запущен без указания файлов сертификата или ключа SSL и с отключенной системной переменной shared_memory. В этих условиях попытки включить require_secure_transport при запуске сервера приводят к записи сообщения в журнал ошибок и завершению работы сервера. Попытки включить переменную во время работы завершаются ошибкой.

    См. также Настройка обязательного использования зашифрованных соединений.

  • restrict_fk_on_non_standard_key

    Формат командной строки --restrict-fk-on-non-standard-key
    Устарело Да
    Системная переменная restrict_fk_on_non_standard_key
    Область действия Глобальная, сеанс
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    Эта переменная, когда ON (значение по умолчанию), препятствует использованию неуникальных ключей или частичных ключей в качестве внешних ключей. Для разрешения использования таких ключей в качестве внешних ключей в текущем сеансе используйте SET @@session.restrict_fk_on_non_standard_key=OFF; для разрешения их использования глобально установите глобальную переменную или запустите сервер с --skip-restrict-fk-on-non-standard-key.

    Использование неуникальных или частичных ключей в качестве внешних ключей в операциях CREATE TABLE или ALTER TABLE устарело, и вы можете ожидать, что поддержка этого будет удалена в будущей версии MySQL. Когда restrict_fk_on_non_standard_key равно ON, попытки этого отвергаются с ; когда это OFF, это использование разрешено, но все равно выдается предупреждение.

    restrict_fk_on_non_standard_key устарело и может быть удалено в будущей версии MySQL. Установка его вызывает предупреждение об устаревании.

    Последствия для репликации MySQL. Когда внешний ключ создаётся на нестандартном ключе на главном сервере, потому что restrict_fk_on_non_standard_key равно OFF, операция завершается успешно на реплике, независимо от установки этой переменной на реплике.

  • resultset_metadata

    Системная переменная resultset_metadata
    Область действия Сеанс
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Перечисление
    Значение по умолчанию FULL
    Допустимые значения

    FULL

    NONE

    Для подключений, для которых передача метаданных является необязательной, клиент устанавливает системную переменную resultset_metadata для управления тем, возвращает ли сервер метаданные набора результатов. Разрешенные значения: FULL (возвратить все метаданные; это значение по умолчанию) и NONE (не возвращать метаданные).

    Для подключений, которые не являются необязательными для метаданных, установка resultset_metadata на NONE приводит к ошибке.

    Подробности по управлению передачей метаданных набора результатов см. в .

  • secondary_engine_cost_threshold

    Системная переменная secondary_engine_cost_threshold
    Область действия Сеанс
    Динамическая Да
    SET_VAR Применяется ли подсказка Да
    Тип Числовой
    Значение по умолчанию 100000.000000
    Минимальное значение 0
    Максимальное значение DBL_MAX (maximum double value)

    Пороговое значение стоимости оптимизатора для передачи запроса на вторичный движок.

    Для использования с HeatWave. См. Руководство пользователя HeatWave.

  • schema_definition_cache

    Формат командной строки --schema-definition-cache=#
    Системная переменная schema_definition_cache
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 256
    Минимальное значение 256
    Максимальное значение 524288

    Определяет ограничение на количество объектов определения схемы, как используемых, так и неиспользуемых, которые могут храниться в кэше объектов словаря.

    Неиспользуемые объекты определения схемы сохраняются в кэше объектов словаря только тогда, когда количество используемых объектов меньше емкости, определенной параметром schema_definition_cache.

    Значение 0 означает, что объекты определения схемы хранятся в кэше объектов словаря только во время их использования.

    Для получения дополнительной информации см. Раздел 16.4, «Кэш объектов словаря».

  • secure_file_priv

    Формат командной строки --secure-file-priv=dir_name
    Системная переменная secure_file_priv
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется ли подсказка Нет
    Тип Строка
    Значение по умолчанию platform specific
    Допустимые значения

    empty string

    dirname

    NULL

    Эта переменная используется для ограничения эффекта операций импорта и экспорта данных, таких как те, которые выполняются операторами LOAD DATA и SELECT ... INTO OUTFILE, а также функцией LOAD_FILE(). Эти операции разрешены только пользователям, имеющим привилегию FILE.

    secure_file_priv может быть установлена следующим образом:

    • Если она пустая, переменная не оказывает никакого влияния. Это небезопасное значение.

    • Если установлена в имя каталога, сервер ограничивает операции импорта и экспорта, чтобы они работали только с файлами в этом каталоге. Каталог должен существовать; сервер его не создаёт.

    • Если установлена в значение NULL, сервер отключает операции импорта и экспорта.

    Значение по умолчанию зависит от платформы и значения опции INSTALL_LAYOUT CMake, как показано в следующей таблице. Чтобы явно указать значение по умолчанию для secure_file_priv, если вы собираете из исходного кода, используйте опцию INSTALL_SECURE_FILE_PRIVDIR CMake.

    Значение INSTALL_LAYOUT Значение по умолчанию для secure_file_priv
    STANDALONE пустая строка
    DEB, RPM, SVR4 /var/lib/mysql-files
    В противном случае mysql-files по адресу CMAKE_INSTALL_PREFIX

    Сервер проверяет значение secure_file_priv при запуске и записывает предупреждение в журнал ошибок, если значение небезопасно. Небезопасным считается значение, если оно пустое, или если это каталог данных или подкаталог, или каталог, доступный всем пользователям. Если secure_file_priv установлено на несуществующий путь, сервер записывает сообщение об ошибке в журнал ошибок и завершает работу.

  • select_into_buffer_size

    Формат командной строки --select-into-buffer-size=#
    Системная переменная select_into_buffer_size
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется ли подсказка Да
    Тип Целое число
    Значение по умолчанию 131072
    Минимальное значение 8192
    Максимальное значение 2147479552
    Единица измерения байты
    Размер блока 4096

    При использовании оператора SELECT INTO OUTFILE или SELECT INTO DUMPFILE для выгрузки данных в один или несколько файлов для создания резервных копий, миграции данных или других целей, запись часто буферизуется, а затем приводит к большому всплеску операций записи ввода-вывода на диск или другое хранилище и блокирует другие запросы, более чувствительные к задержкам. Вы можете использовать эту переменную для управления размером буфера, используемого для записи данных в хранилище, чтобы определить, когда следует выполнить синхронизацию буфера, и таким образом предотвратить блокировки записи, подобные описанным выше.

    select_into_buffer_size переопределяет любое значение, установленное для read_buffer_size. (select_into_buffer_size и read_buffer_size имеют одинаковые значения по умолчанию, максимальное и минимальное значение.) Вы также можете использовать select_into_disk_sync_delay для установки тайм-аута, который должен соблюдаться после каждой синхронизации.

    Установка сеансового значения этой системной переменной является ограниченной операцией. Пользователь сеанса должен иметь привилегии, достаточные для установки ограниченных сеансовых переменных. См. Раздел 7.1.9.1, «Привилегии на системные переменные».

  • select_into_disk_sync

    Формат командной строки --select-into-disk-sync={ON|OFF}
    Системная переменная select_into_disk_sync
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется ли подсказка Да
    Тип Булево
    Значение по умолчанию OFF
    Допустимые значения

    OFF

    ON

    При установке в значение ON, позволяет синхронизировать буферы записи в выходной файл при выполнении долгоработающего оператора SELECT INTO OUTFILE или оператора SELECT INTO DUMPFILE с использованием select_into_buffer_size.

  • select_into_disk_sync_delay

    Формат командной строки --select-into-disk-sync-delay=#
    Системная переменная select_into_disk_sync_delay
    Область действия Глобальная, Сессия
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 31536000
    Единица измерения миллисекунды

    Когда включена синхронизация буфера записей в выходной файл с помощью длительного оператора SELECT INTO OUTFILE или оператора SELECT INTO DUMPFILE, эта переменная устанавливает необязательную задержку (в миллисекундах) после синхронизации. Значение 0 (по умолчанию) означает отсутствие задержки.

    Установка значения этой системной переменной в сессии является ограниченной операцией. Пользователь сессии должен иметь достаточные права для установки ограниченных переменных сессии. См. Раздел 7.1.9.1, «Права на системные переменные».

  • session_track_gtids

    Формат командной строки --session-track-gtids=value
    Системная переменная session_track_gtids
    Область действия Глобальная, Сессия
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Перечисление
    Значение по умолчанию OFF
    Допустимые значения

    OFF

    OWN_GTID

    ALL_GTIDS

    Определяет, возвращает ли сервер GTIDs клиенту, позволяя клиенту отслеживать состояние сервера. В зависимости от значения переменной, по завершении каждой транзакции сервер получает и возвращает клиенту GTIDs в качестве подтверждения. Возможные значения для session_track_gtids следующие:

    • OFF: Сервер не возвращает GTIDs клиенту. Это значение по умолчанию.

    • OWN_GTID: Сервер возвращает GTIDs для всех транзакций, успешно подтвержденных этим клиентом в текущей сессии с момента последнего подтверждения. Как правило, это один GTID последней подтвержденной транзакции, но если один клиентский запрос привел к нескольким транзакциям, сервер возвращает набор GTIDs, содержащий все соответствующие GTIDs.

    • ALL_GTIDS: Сервер возвращает глобальное значение системной переменной gtid_executed, которое считывается после успешного подтверждения транзакции. Помимо GTID только что подтвержденной транзакции, этот набор GTID включает все транзакции, подтвержденные на сервере любым клиентом, и может включать транзакции, подтвержденные после того, как транзакция, которая в данный момент подтверждается, была подтверждена.

    session_track_gtids не может быть установлена в контексте транзакции.

    Для получения дополнительной информации об отслеживании состояния сессии, см. Раздел 7.1.18, «Отслеживание сервером состояния сессии клиента».

  • session_track_schema

    Формат командной строки --session-track-schema[={OFF|ON}]
    Системная переменная session_track_schema
    Область действия Глобальная, Сессия
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    Определяет, отслеживает ли сервер, когда в текущей сессии задан режим по умолчанию (база данных), и уведомляет клиента о наличии имени режима.

    Если отслеживание имени режима включено, уведомление об имени происходит каждый раз при установке нового режима по умолчанию, даже если новое имя режима совпадает со старым.

    Для получения дополнительной информации об отслеживании состояния сессии, см. Раздел 7.1.18, «Отслеживание сервером состояния сессии клиента».

  • session_track_state_change

    Формат командной строки --session-track-state-change[={OFF|ON}]
    Системная переменная session_track_state_change
    Область действия Глобальная, Сессия
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Определяет, отслеживает ли сервер изменения состояния текущей сессии и уведомляет ли клиент о происходящих изменениях состояния. Изменения могут быть сообщены для следующих атрибутов состояния клиентской сессии:

    • Режим по умолчанию (база данных).

    • Значения системных переменных, специфичные для сессии.

    • Переменные, определенные пользователем.

    • Временные таблицы.

    • Подготовленные запросы.

    Если отслеживание состояния сессии включено, уведомление происходит для каждого изменения, которое включает отслеживаемые атрибуты сессии, даже если новые значения атрибутов совпадают со старыми. Например, присвоение переменной, определенной пользователем, ее текущему значению приводит к уведомлению.

    Переменная session_track_state_change управляет только уведомлением о происходящих изменениях, а не самими изменениями. Например, уведомления об изменениях состояния происходят при установке режима по умолчанию или присвоении отслеживаемых системных переменных сессии, но уведомление не включает имя режима или значения переменных. Для получения уведомлений об имени режима или значениях системных переменных сессии используйте, соответственно, системную переменную session_track_schema или session_track_system_variables.

    Примечание

    Присвоение значения переменной session_track_state_change само по себе не считается изменением состояния и не сообщается как таковое. Однако, если ее имя указано в значении session_track_system_variables, любые присвоения значения приводят к уведомлению о новом значении.

    Для получения дополнительной информации об отслеживании состояния сессии, см. Раздел 7.1.18, «Отслеживание сервером состояния сессии клиента».

  • session_track_system_variables

    Формат командной строки --session-track-system-variables=#
    Системная переменная session_track_system_variables
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Строка
    Значение по умолчанию time_zone, autocommit, character_set_client, character_set_results, character_set_connection

    Управляет тем, отслеживает ли сервер присваивания системным переменным сеанса и уведомляет ли клиент о имени и значении каждой присвоенной переменной. Значение переменной представляет собой список переменных, для которых следует отслеживать присваивания, разделенный запятыми. По умолчанию уведомления включены для time_zone, autocommit, character_set_client, character_set_results и character_set_connection. (Последние три переменные затронуты SET NAMES.)

    Для отображения идентификатора оператора для каждого обработанного оператора используйте переменную statement_id. Например:

    mysql>  SET @@SESSION.session_track_system_variables='statement_id'
    mysql>  SELECT 1;
    +---+
    | 1 |
    +---+
    | 1 |
    +---+
    1 row in set (0.0006 sec)
    Statement ID: 603835
            

    Специальное значение * (звездочка) заставляет сервер отслеживать присваивания всем переменным сеанса. Если указано, это значение должно быть указано само по себе без указания имен конкретных системных переменных. Это значение также включает отображение идентификатора оператора для каждого успешно обработанного оператора.

    Чтобы отключить уведомления о присваиваниях переменных сеанса, установите session_track_system_variables в пустую строку.

    Если отслеживание системных переменных сеанса включено, уведомления будут происходить при всех присваиваниях отслеживаемым переменным сеанса, даже если новые значения совпадают со старыми.

    Дополнительную информацию об отслеживании состояния сеанса см. в разделе 7.1.18, «Отслеживание сервером состояния сеанса клиента».

  • session_track_transaction_info

    Формат командной строки --session-track-transaction-info=value
    Системная переменная session_track_transaction_info
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Перечисление
    Значение по умолчанию OFF
    Допустимые значения

    OFF

    STATE

    CHARACTERISTICS

    Управляет тем, отслеживает ли сервер состояние и характеристики транзакций в текущем сеансе и уведомляет ли клиент, чтобы сделать эту информацию доступной. Разрешены следующие значения session_track_transaction_info:

    • OFF: Отключение отслеживания состояния транзакции. Это значение по умолчанию.

    • STATE: Включение отслеживания состояния транзакции без отслеживания характеристик. Отслеживание состояния позволяет клиенту определить, активна ли транзакция и может ли она быть перемещена в другой сеанс без отката.

    • CHARACTERISTICS: Включение отслеживания состояния транзакции, включая отслеживание характеристик. Отслеживание характеристик позволяет клиенту определить, как перезапустить транзакцию в другом сеансе, чтобы она имела те же характеристики, что и в исходном сеансе. Для этой цели следующие характеристики имеют значение:

      ISOLATION LEVEL
      READ ONLY
      READ WRITE
      WITH CONSISTENT SNAPSHOT
      

    Для безопасного перемещения транзакции в другой сеанс клиент должен отслеживать не только состояние транзакции, но и её характеристики. Кроме того, клиент должен отслеживать системные переменные transaction_isolation и transaction_read_only, чтобы правильно определить значения по умолчанию для сеанса. (Для отслеживания этих переменных перечислите их в значении системной переменной session_track_system_variables.)

    Дополнительную информацию об отслеживании состояния сеанса см. в разделе 7.1.18, «Отслеживание сервером состояния сеанса клиента».

  • set_operations_buffer_size

    Формат командной строки --set-operations-buffer-size=#
    Системная переменная set_operations_buffer_size
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 256K
    Минимальное значение 16K
    Максимальное значение 1 GB

    Устанавливает размер буфера для операций INTERSECT и EXCEPT, которые используют хэш-таблицы, когда переключатель оптимизатора hash_set_operations включён. В общем случае увеличение размера этого буфера улучшает производительность этих операций при включенной оптимизации хеширования.

  • sha256_password_auto_generate_rsa_keys

    Формат командной строки --sha256-password-auto-generate-rsa-keys[={OFF|ON}]
    Устаревший Да
    Системная переменная sha256_password_auto_generate_rsa_keys
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    Сервер использует эту переменную для определения необходимости автоматического создания пар файлов закрытого/открытого ключа RSA в каталоге данных, если они еще не существуют.

    При запуске сервер автоматически генерирует файлы пар ключей RSA в каталоге данных, если все эти условия верны: переменная sha256_password_auto_generate_rsa_keys или caching_sha2_password_auto_generate_rsa_keys включены; не указаны параметры RSA; файлы RSA отсутствуют в каталоге данных. Эти пары ключей обеспечивают безопасный обмен паролями с использованием RSA по незашифрованным соединениям для учетных записей, авторизованных плагином sha256_password (устаревший) или caching_sha2_password; см. раздел 8.4.1.3, «Плагин аутентификации SHA-256» и раздел 8.4.1.2, «Плагин аутентификации кэширования SHA-2».

    Дополнительную информацию об автоматическом создании файлов RSA, включая имена файлов и характеристики, см. в разделе 8.3.3.1, «Создание сертификатов и ключей SSL и RSA с использованием MySQL»

    Системная переменная auto_generate_certs имеет отношение, но управляет автоматическим созданием файлов сертификатов и ключей SSL, необходимых для безопасных соединений с использованием SSL.

  • sha256_password_private_key_path

    Формат командной строки --sha256-password-private-key-path=file_name
    Устарело Да
    Системная переменная sha256_password_private_key_path
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Имя файла
    Значение по умолчанию private_key.pem

    Значение этой переменной — имя пути к файлу закрытого ключа RSA для плагина аутентификации sha256_password (устаревший). Если файл указан как относительный путь, он интерпретируется относительно каталога данных сервера. Файл должен быть в формате PEM.

    Важно

    Поскольку этот файл хранит закрытый ключ, его режим доступа должен быть ограничен таким образом, чтобы только сервер MySQL мог его читать.

    Для получения информации о sha256_password, см. Раздел 8.4.1.3, «SHA-256 Pluggable Authentication».

  • sha256_password_proxy_users

    Формат командной строки --sha256-password-proxy-users[={OFF|ON}]
    Устарело Да
    Системная переменная sha256_password_proxy_users
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Логическое
    Значение по умолчанию OFF

    Эта переменная управляет тем, поддерживает ли встроенный плагин аутентификации sha256_password (устаревший) пользователей-посредников. Она не оказывает никакого влияния, если системная переменная check_proxy_users не включена. Для получения информации о передаче прав пользователя см. Раздел 8.2.19, «Пользователи-посредники».

  • sha256_password_public_key_path

    Формат командной строки --sha256-password-public-key-path=file_name
    Устарело Да
    Системная переменная sha256_password_public_key_path
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Имя файла
    Значение по умолчанию public_key.pem

    Значение этой переменной — имя пути к файлу открытого ключа RSA для плагина аутентификации sha256_password (устаревший). Если файл указан как относительный путь, он интерпретируется относительно каталога данных сервера. Файл должен быть в формате PEM. Поскольку этот файл хранит открытый ключ, копии могут свободно распространяться среди пользователей клиентов. (Клиенты, которые явно указывают открытый ключ при подключении к серверу с использованием шифрования пароля RSA, должны использовать тот же открытый ключ, что и сервер.)

    Для получения информации о sha256_password (устаревший), включая информацию о том, как клиенты указывают открытый ключ RSA, см. Раздел 8.4.1.3, «SHA-256 Pluggable Authentication».

  • shared_memory

    Формат командной строки --shared-memory[={OFF|ON}]
    Системная переменная shared_memory
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Специфично для платформы Windows
    Тип Логическое
    Значение по умолчанию OFF

    (Только Windows.) Разрешает ли сервер подключения с общей памятью.

  • shared_memory_base_name

    Формат командной строки --shared-memory-base-name=name
    Системная переменная shared_memory_base_name
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Специфично для платформы Windows
    Тип Строка
    Значение по умолчанию MYSQL

    (Только Windows.) Имя общей памяти для использования с подключениями с общей памятью. Это полезно при запуске нескольких экземпляров MySQL на одной физической машине. Имя по умолчанию — MYSQL. Имя чувствительно к регистру.

    Эта переменная применяется только в том случае, если сервер запущен с включенной системной переменной shared_memory для поддержки подключений с общей памятью.

  • show_create_table_skip_secondary_engine

    Формат командной строки --show-create-table-skip-secondary-engine[={OFF|ON}]
    Системная переменная show_create_table_skip_secondary_engine
    Область видимости Сессия
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Логическое
    Значение по умолчанию OFF

    Включение show_create_table_skip_secondary_engine приводит к исключению предложения SECONDARY ENGINE из вывода SHOW CREATE TABLE и из инструкций CREATE TABLE, выгружаемых утилитой mysqldump.

    mysqldump предоставляет опцию --show-create-skip-secondary-engine. При указании она включает системную переменную show_create_table_skip_secondary_engine на время операции дампа.

    Для использования с HeatWave. См. Руководство пользователя HeatWave.

  • show_create_table_verbosity

    Формат командной строки --show-create-table-verbosity[={OFF|ON}]
    Системная переменная show_create_table_verbosity
    Область видимости Глобальная, Сессия
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Логическое
    Значение по умолчанию OFF

    SHOW CREATE TABLE обычно не показывает параметр таблицы ROW_FORMAT, если формат строки является форматом по умолчанию. Включение этой переменной приводит к тому, что SHOW CREATE TABLE отображает ROW_FORMAT независимо от того, является ли он форматом по умолчанию.

  • show_gipk_in_create_table_and_information_schema

    Формат командной строки --show-gipk-in-create-table-and-information-schema[={OFF|ON}]
    Переменная системы show_gipk_in_create_table_and_information_schema
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    Показывает ли сгенерированные невидимые первичные ключи в выводе команд SHOW и в таблицах Информационной схемы. Когда эта переменная установлена в значение OFF, такие ключи не отображаются.

    Эта переменная не реплицируется.

    Дополнительную информацию см. в разделе 15.1.20.11 «Сгенерированные невидимые первичные ключи».

  • skip_external_locking

    Формат командной строки --skip-external-locking[={OFF|ON}]
    Переменная системы skip_external_locking
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    Устанавливается в значение OFF, если mysqld использует внешние блокировки (системные блокировки), и в значение ON, если внешние блокировки отключены. Это влияет только на доступ к таблицам MyISAM.

    Эта переменная устанавливается параметром --external-locking или --skip-external-locking. Внешние блокировки отключены по умолчанию.

    Внешние блокировки влияют только на доступ к таблицам MyISAM. Дополнительную информацию, включая условия, при которых они могут и не могут использоваться, см. в разделе 10.11.5 «Внешние блокировки».

  • skip_name_resolve

    Формат командной строки --skip-name-resolve[={OFF|ON}]
    Переменная системы skip_name_resolve
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Разрешить ли разрешение имен хостов при проверке подключений клиентов. Если эта переменная установлена в значение OFF, mysqld разрешает имена хостов при проверке подключений клиентов. Если она установлена в значение ON, mysqld использует только IP-адреса; в этом случае все значения столбца Host в таблицах разрешений должны быть IP-адресами. См. раздел 7.1.12.3 «Поиск DNS и кэш хостов».

    В зависимости от конфигурации сети вашей системы и значений Host для ваших учетных записей, клиентам может потребоваться подключение с явным параметром --host, например, --host=127.0.0.1 или --host=::1.

    Попытка подключения к хосту 127.0.0.1 обычно приводит к разрешению учетной записи localhost. Однако это не удается, если сервер запущен с включенной переменной skip_name_resolve. Если вы планируете это сделать, убедитесь, что существует учетная запись, которая может принять подключение. Например, чтобы подключиться как root с помощью --host=127.0.0.1 или --host=::1, создайте эти учетные записи:

    CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY 'root-password';
    CREATE USER 'root'@'::1' IDENTIFIED BY 'root-password';
    
  • skip_networking

    Формат командной строки --skip-networking[={OFF|ON}]
    Переменная системы skip_networking
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Эта переменная управляет тем, разрешает ли сервер подключения по TCP/IP. По умолчанию она отключена (разрешены TCP-соединения). Если она включена, сервер разрешает только локальные (не TCP/IP) подключения, а все взаимодействия с mysqld должны выполняться с помощью именованных каналов или общей памяти (в Windows) или файлов сокетов Unix (в Unix). Этот параметр рекомендуется для систем, в которых допускаются только локальные клиенты. См. раздел 7.1.12.3 «Поиск DNS и кэш хостов».

    Поскольку запуск сервера с параметром --skip-grant-tables отключает проверки аутентификации, сервер также отключает удаленные подключения, включая skip_networking.

  • skip_show_database

    Формат командной строки --skip-show-database
    Переменная системы skip_show_database
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Это предотвращает использование оператора SHOW DATABASES пользователями, у которых нет привилегии SHOW DATABASES. Это может повысить безопасность, если вы беспокоитесь о возможности просмотра пользователями баз данных, принадлежащих другим пользователям. Его эффект зависит от привилегии SHOW DATABASES: Если значение переменной равно ON, оператор SHOW DATABASES разрешен только для пользователей, имеющих привилегию SHOW DATABASES, и оператор отображает все имена баз данных. Если значение равно OFF, оператор SHOW DATABASES разрешен всем пользователям, но отображает имена только тех баз данных, для которых у пользователя есть привилегия SHOW DATABASES или другая привилегия.

    Внимание

    Поскольку любая статическая глобальная привилегия считается привилегией для всех баз данных, любая статическая глобальная привилегия позволяет пользователю видеть все имена баз данных с помощью SHOW DATABASES или путем проверки таблицы SCHEMATA из INFORMATION_SCHEMA, за исключением баз данных, которые были ограничены на уровне базы данных частичными отзывами.

  • slow_launch_time

    Формат командной строки --slow-launch-time=#
    Системная переменная slow_launch_time
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 2
    Минимальное значение 0
    Максимальное значение 31536000
    Единица измерения секунды

    Если создание потока занимает больше указанного количества секунд, сервер увеличивает значение переменной состояния Slow_launch_threads.

  • slow_query_log

    Формат командной строки --slow-query-log[={OFF|ON}]
    Системная переменная slow_query_log
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Логическое
    Значение по умолчанию OFF

    Включен ли журнал медленных запросов. Значение может быть 0 (или OFF) для отключения журнала или 1 (или ON) для его включения. Назначение для вывода журнала управляется системной переменной log_output; если это значение равно NONE, записи в журнал не записываются, даже если журнал включен.

    “Медленный” определяется значением переменной long_query_time. См. Раздел 7.4.5, «Журнал медленных запросов».

  • slow_query_log_file

    Формат командной строки --slow-query-log-file=file_name
    Системная переменная slow_query_log_file
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Имя файла
    Значение по умолчанию host_name-slow.log

    Имя файла журнала медленных запросов. Значение по умолчанию — host_name-slow.log, но начальное значение может быть изменено с помощью параметра --slow_query_log_file.

  • socket

    Формат командной строки --socket={file_name|pipe_name}
    Системная переменная socket
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию (Windows) MySQL
    Значение по умолчанию (другие) /tmp/mysql.sock

    На платформах Unix эта переменная — имя файла сокета, используемого для локальных подключений клиентов. Значение по умолчанию — /tmp/mysql.sock. (Для некоторых форматов дистрибуции каталог может быть другим, например, /var/lib/mysql для RPM-пакетов.)

    В Windows эта переменная — имя именованного канала, используемого для локальных подключений клиентов. Значение по умолчанию — MySQL (без учета регистра).

  • sort_buffer_size

    Формат командной строки --sort-buffer-size=#
    Системная переменная sort_buffer_size
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Целое число
    Значение по умолчанию 262144
    Минимальное значение 32768
    Максимальное значение (Windows) 4294967295
    Максимальное значение (другие, 64-разрядные платформы) 18446744073709551615
    Максимальное значение (другие, 32-разрядные платформы) 4294967295
    Единица измерения байты

    Каждый сеанс, которому необходимо выполнить сортировку, выделяет буфер этого размера. sort_buffer_size не специфичен для какого-либо механизма хранения и применяется общим образом для оптимизации. Как минимум значение sort_buffer_size должно быть достаточно большим, чтобы вместить пятнадцать кортежей в буфере сортировки. Кроме того, увеличение значения max_sort_length может потребовать увеличения значения sort_buffer_size. Для получения дополнительной информации см. Раздел 10.2.1.16, «Оптимизация ORDER BY»

    Если вы видите много Sort_merge_passes в секунду в выводе SHOW GLOBAL STATUS, вы можете рассмотреть возможность увеличения значения sort_buffer_size для ускорения операций ORDER BY или GROUP BY, которые нельзя улучшить с помощью оптимизации запросов или улучшенного индексирования.

    Оптимизатор пытается определить, сколько места необходимо, но может выделить больше, вплоть до предела. Установка большего, чем необходимо, глобального значения замедляет большинство запросов, выполняющих сортировку. Лучше всего увеличить его как настройку сеанса и только для сеансов, которым требуется больший размер. В Linux существуют пороговые значения 256 КБ и 2 МБ, при которых большие значения могут значительно замедлить выделение памяти, поэтому следует рассмотреть возможность оставаться ниже одного из этих значений. Экспериментируйте, чтобы найти оптимальное значение для вашей рабочей нагрузки. См. Раздел B.3.3.5, «Где MySQL хранит временные файлы».

    Максимально допустимая настройка для sort_buffer_size составляет 4 ГБ−1. Более высокие значения допускаются для 64-разрядных платформ (за исключением 64-разрядной Windows, для которой большие значения усекаются до 4 ГБ−1 с предупреждением).

  • sql_auto_is_null

    Системная переменная sql_auto_is_null
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Логическое
    Значение по умолчанию OFF

    Если эта переменная включена, то после оператора, успешно вставившего автоматически генерируемое значение AUTO_INCREMENT, вы можете найти это значение, выполнив оператор следующего вида:

    SELECT * FROM tbl_name WHERE auto_col IS NULL
    

    Если оператор возвращает строку, возвращаемое значение такое же, как если бы вы вызвали функцию LAST_INSERT_ID(). Для получения подробной информации, включая возвращаемое значение после вставки нескольких строк, см. Раздел 14.15, «Информационные функции». Если значение AUTO_INCREMENT не было успешно вставлено, оператор SELECT не возвращает ни одной строки.

    Поведение получения значения AUTO_INCREMENT с помощью сравнения IS NULL используется некоторыми программами ODBC, такими как Access. См. Это поведение может быть отключено путем установки sql_auto_is_null в OFF.

    Значение по умолчанию для sql_auto_is_null — OFF.

  • sql_big_selects

    Переменная системы sql_big_selects
    Область действия Глобальная, сеансовая
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Булево
    Значение по умолчанию ON

    Если установлено значение OFF, MySQL прерывает операторы SELECT, которые, вероятно, будут выполняться очень долго (то есть, операторы, для которых оптимизатор оценивает, что число проверяемых строк превышает значение max_join_size). Это полезно, когда был выдан нежелательный оператор WHERE. Значение по умолчанию для нового подключения - ON, что разрешает все операторы SELECT.

    Если вы установите переменную системы max_join_size на значение, отличное от DEFAULT, sql_big_selects устанавливается в значение OFF.

  • sql_buffer_result

    Переменная системы sql_buffer_result
    Область действия Глобальная, сеансовая
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Булево
    Значение по умолчанию OFF

    Если включено, sql_buffer_result принудительно помещает результаты операторов SELECT во временные таблицы. Это помогает MySQL освободить блокировки таблиц раньше и может быть полезно в случаях, когда отправка результатов клиенту занимает много времени. Значение по умолчанию - OFF.

  • sql_generate_invisible_primary_key

    Формат командной строки --sql-generate-invisible-primary-key[={OFF|ON}]
    Переменная системы sql_generate_invisible_primary_key
    Область действия Глобальная, сеансовая
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Указывает, добавляет ли этот сервер сгенерированный невидимый первичный ключ к любой таблице InnoDB, созданной без него.

    Эта переменная не реплицируется. Кроме того, даже если она установлена на реплике, она игнорируется потоками применений репликации; это означает, что по умолчанию реплика не генерирует первичный ключ для любой реплицированной таблицы, которая на источнике была создана без него. Вы можете заставить реплику генерировать невидимые первичные ключи для таких таблиц, установив REQUIRE_TABLE_PRIMARY_KEY_CHECK = GENERATE в рамках оператора CHANGE REPLICATION SOURCE TO, необязательно указав канал репликации.

    Для получения более подробной информации и примеров см. Раздел 15.1.20.11, “Сгенерированные невидимые первичные ключи”.

  • sql_log_off

    Переменная системы sql_log_off
    Область действия Глобальная, сеансовая
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF
    Допустимые значения

    OFF (включить логирование)

    ON (отключить логирование)

    Эта переменная управляет отключением логирования в общий журнал запросов для текущего сеанса (при условии, что сам общий журнал запросов включен). Значение по умолчанию - OFF (то есть, включить логирование). Для отключения или включения общего логирования запросов для текущего сеанса установите сеансовую переменную sql_log_off на значение ON или OFF.

    Установка сеансового значения этой переменной является ограниченной операцией. Пользователь сеанса должен иметь права, достаточные для установки ограниченных сеансовых переменных. См. Раздел 7.1.9.1, “Права на переменные системы”.

  • sql_mode

    Формат командной строки --sql-mode=name
    Переменная системы sql_mode
    Область действия Глобальная, сеансовая
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Набор
    Значение по умолчанию ONLY_FULL_GROUP_BY STRICT_TRANS_TABLES NO_ZERO_IN_DATE NO_ZERO_DATE ERROR_FOR_DIVISION_BY_ZERO NO_ENGINE_SUBSTITUTION
    Допустимые значения

    ALLOW_INVALID_DATES

    ANSI_QUOTES

    ERROR_FOR_DIVISION_BY_ZERO

    HIGH_NOT_PRECEDENCE

    IGNORE_SPACE

    NO_AUTO_VALUE_ON_ZERO

    NO_BACKSLASH_ESCAPES

    NO_DIR_IN_CREATE

    NO_ENGINE_SUBSTITUTION

    NO_UNSIGNED_SUBTRACTION

    NO_ZERO_DATE

    NO_ZERO_IN_DATE

    ONLY_FULL_GROUP_BY

    PAD_CHAR_TO_FULL_LENGTH

    PIPES_AS_CONCAT

    REAL_AS_FLOAT

    STRICT_ALL_TABLES

    STRICT_TRANS_TABLES

    TIME_TRUNCATE_FRACTIONAL

    Текущий режим SQL сервера, который может быть изменён динамически. Подробнее см. Раздел 7.1.11, “Режим SQL сервера”.

    Примечание

    Программы установки MySQL могут настроить режим SQL во время установки.

    Если режим SQL отличается от значения по умолчанию или ожидаемого значения, проверьте параметр в файле конфигурации, который считывается сервером при запуске.

  • sql_notes

    Переменная системы sql_notes
    Область действия Глобальная, сеансовая
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    Если включено (по умолчанию), диагностика уровня Note увеличивает счётчик warning_count, и сервер их регистрирует. Если отключено, диагностика уровня Note не увеличивает warning_count, и сервер их не регистрирует. mysqldump включает вывод для отключения этой переменной, чтобы при загрузке файла дампа не генерировались предупреждения для событий, которые не влияют на целостность процесса загрузки.

  • sql_quote_show_create

    Переменная системы sql_quote_show_create
    Область действия Глобальная, сеансовая
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    Если включено (по умолчанию), сервер помещает в кавычки идентификаторы для SHOW CREATE TABLE и SHOW CREATE DATABASE заявлений. Если отключено, кавычки отключаются. Этот параметр включен по умолчанию, чтобы репликация работала для идентификаторов, требующих кавычек. См. Раздел 15.7.7.11, «Заявление SHOW CREATE TABLE» и Раздел 15.7.7.7, «Заявление SHOW CREATE DATABASE».

  • sql_require_primary_key

    Формат командной строки --sql-require-primary-key[={OFF|ON}]
    Переменная системы sql_require_primary_key
    Область действия Глобальная, сеансовая
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Булево
    Значение по умолчанию OFF

    Определяет, будут ли утверждения, создающие новые таблицы или изменяющие структуру существующих таблиц, требовать наличия первичного ключа.

    Установка сеансового значения этой переменной системы — ограниченная операция. Сеансовый пользователь должен иметь соответствующие привилегии для установки ограниченных сеансовых переменных. См. Раздел 7.1.9.1, «Привилегии переменных системы».

    Включение этой переменной помогает избежать проблем производительности при репликации на основе строк, которые могут возникать, когда таблицы не имеют первичного ключа. Предположим, что таблица не имеет первичного ключа, и обновление или удаление изменяют несколько строк. На сервере источника репликации данную операцию можно выполнить с помощью одного сканирования таблицы, но при репликации на основе строк это приведет к сканированию таблицы для каждой строки, которую нужно изменить на реплике. С первичным ключом эти сканирования таблицы не происходят.

    sql_require_primary_key применяется как к основным таблицам, так и к TEMPORARY таблицам, и изменения в его значении реплицируются на серверы реплики. Таблица должна использовать хранилища MySQL, которые могут участвовать в репликации.

    При включении sql_require_primary_key происходит следующее:

    • Попытки создать новую таблицу без первичного ключа завершатся ошибкой. Это включает CREATE TABLE ... LIKE. Это также включает CREATE TABLE ... SELECT, если часть CREATE TABLE не содержит определение первичного ключа.

    • Попытки удалить первичный ключ из существующей таблицы завершатся ошибкой, за исключением случая, когда первичный ключ удаляется и добавляется в том же ALTER TABLE операторе.

      Удаление первичного ключа завершается ошибкой, даже если таблица также содержит UNIQUE NOT NULL индекс.

    • Попытки импорта таблицы без первичного ключа завершатся ошибкой.

    Параметр REQUIRE_TABLE_PRIMARY_KEY_CHECK оператора CHANGE REPLICATION SOURCE TO позволяет реплике выбрать собственную политику проверки первичного ключа. Когда параметр установлен на ON для канала репликации, реплика всегда использует значение ON для переменной системы sql_require_primary_key в операциях репликации, требуя первичный ключ. Когда параметр установлен на OFF, реплика всегда использует значение OFF для переменной системы sql_require_primary_key в операциях репликации, так что первичный ключ никогда не требуется, даже если исходник его требовал. Когда параметр REQUIRE_TABLE_PRIMARY_KEY_CHECK установлен на STREAM, что является значением по умолчанию, реплика использует то значение, которое реплицируется из источника для каждой транзакции. С настройкой STREAM для параметра REQUIRE_TABLE_PRIMARY_KEY_CHECK, если для канала репликации используются проверки привилегий, учетная запись PRIVILEGE_CHECKS_USER нуждается в привилегиях, достаточных для установки ограниченных сеансовых переменных, чтобы она могла установить сеансовое значение переменной системы sql_require_primary_key. С настройками ON или OFF учетной записи не нужны эти привилегии. Подробнее см. Раздел 19.3.3, «Проверки привилегий репликации».

  • sql_safe_updates

    Переменная системы sql_safe_updates
    Область действия Глобальная, сеансовая
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Булево
    Значение по умолчанию OFF

    Если эта переменная включена, UPDATE и DELETE заявления, которые не используют ключ в WHERE или LIMIT фразе, генерируют ошибку. Это позволяет отслеживать UPDATE и DELETE утверждения, в которых ключи не используются должным образом и, вероятно, изменят или удалят большое количество строк. Значение по умолчанию — OFF.

    Для клиента mysql, sql_safe_updates можно включить, используя опцию --safe-updates. Подробнее см. Использование режима Safe-Updates (--safe-updates).

  • sql_select_limit

    Переменная системы sql_select_limit
    Область действия Глобальная, сеансовая
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Целое
    Значение по умолчанию 18446744073709551615
    Минимальное значение 0
    Максимальное значение 18446744073709551615

    Максимальное количество строк, возвращаемых из SELECT заявлений. Подробнее см. Использование режима Safe-Updates (--safe-updates).

    Значение по умолчанию для нового подключения — максимальное количество строк, разрешенных сервером на таблицу. Типичные значения по умолчанию — (232) − 1 или (264) − 1. Если вы изменили ограничение, значение по умолчанию можно восстановить, присвоив значение DEFAULT.

    Если в SELECT есть фраза LIMIT, то LIMIT имеет приоритет над значением sql_select_limit.

  • sql_warnings

    Переменная системы sql_warnings
    Область действия Глобальная, сеансовая
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Эта переменная управляет тем, генерирует ли оператор INSERT с одной строкой строку информации, если возникли предупреждения. По умолчанию — OFF. Установите значение на ON, чтобы получить строку информации.

  • ssl_ca

    Формат командной строки --ssl-ca=file_name
    Системная переменная ssl_ca
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Имя файла
    Значение по умолчанию NULL

    Имя пути к файлу сертификата Центра сертификации (CA) в формате PEM. Файл содержит список доверенных центров сертификации SSL.

    Эту переменную можно изменить во время выполнения, чтобы повлиять на контекст TLS, который сервер использует для новых подключений, установленных после выполнения ALTER INSTANCE RELOAD TLS или после перезапуска, если значение переменной сохранилось. См. Конфигурация и мониторинг серверной стороны во время выполнения для шифрованных подключений.

  • ssl_capath

    Формат командной строки --ssl-capath=dir_name
    Системная переменная ssl_capath
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Имя каталога
    Значение по умолчанию NULL

    Имя пути к каталогу, содержащему файлы сертификатов доверенных центров сертификации SSL (CA) в формате PEM.

    Эту переменную можно изменить во время выполнения, чтобы повлиять на контекст TLS, который сервер использует для новых подключений, установленных после выполнения ALTER INSTANCE RELOAD TLS или после перезапуска, если значение переменной сохранилось. См. Конфигурация и мониторинг серверной стороны во время выполнения для шифрованных подключений.

  • ssl_cert

    Формат командной строки --ssl-cert=file_name
    Системная переменная ssl_cert
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Имя файла
    Значение по умолчанию NULL

    Имя пути к файлу сертификата открытого ключа сервера SSL в формате PEM.

    Если сервер запускается с ssl_cert, настроенным на сертификат, использующий любой ограниченный шифр или категорию шифров, сервер запускается с отключенной поддержкой шифрованных подключений. Сведения об ограничениях шифров см. в разделе Конфигурация шифров подключения.

    Эту переменную можно изменить во время выполнения, чтобы повлиять на контекст TLS, который сервер использует для новых подключений, установленных после выполнения ALTER INSTANCE RELOAD TLS или после перезапуска, если значение переменной сохранилось. См. Конфигурация и мониторинг серверной стороны во время выполнения для шифрованных подключений.

  • ssl_cipher

    Формат командной строки --ssl-cipher=name
    Системная переменная ssl_cipher
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Строка
    Значение по умолчанию NULL

    Список разрешенных шифров шифрования для подключений, использующих TLSv1.2. Если ни один из шифров в списке не поддерживается, шифрованные подключения, использующие этот протокол TLS, не работают.

    Список может включать следующие значения:

    • ECDHE-ECDSA-AES128-GCM-SHA256

    • ECDHE-ECDSA-AES256-GCM-SHA384

    • ECDHE-RSA-AES128-GCM-SHA256

    • ECDHE-RSA-AES256-GCM-SHA384

    • ECDHE-ECDSA-CHACHA20-POLY1305

    • ECDHE-RSA-CHACHA20-POLY1305

    • ECDHE-ECDSA-AES256-CCM

    • ECDHE-ECDSA-AES128-CCM

    • DHE-RSA-AES128-GCM-SHA256

    • DHE-RSA-AES256-GCM-SHA384

    • DHE-RSA-AES256-CCM

    • DHE-RSA-AES128-CCM

    • DHE-RSA-CHACHA20-POLY1305

    Попытка включить любые значения в список шифров, которые не показаны здесь при настройке этой переменной, вызывает ошибку.

    Для максимальной переносимости список шифров должен быть списком одного или нескольких имён шифров, разделенных двоеточиями. Следующий пример показывает два имени шифров, разделённых двоеточием:

    [mysqld]
    ssl_cipher="DHE-RSA-AES128-GCM-SHA256:AES128-SHA"
    

    OpenSSL поддерживает синтаксис для указания шифров, описанный в документации OpenSSL по адресу https://www.openssl.org/docs/manmaster/man1/ciphers.html.

    Сведения о поддерживаемых MySQL шифрах шифрования см. в разделе Раздел 8.3.2, «Протоколы и шифры TLS шифрованных подключений».

    Эту переменную можно изменить во время выполнения, чтобы повлиять на контекст TLS, который сервер использует для новых подключений, установленных после выполнения ALTER INSTANCE RELOAD TLS или после перезапуска, если значение переменной сохранилось. См. Конфигурация и мониторинг серверной стороны во время выполнения для шифрованных подключений.

  • ssl_crl

    Формат командной строки --ssl-crl=file_name
    Системная переменная ssl_crl
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Имя файла
    Значение по умолчанию NULL

    Имя пути к файлу, содержащему списки аннулированных сертификатов в формате PEM.

    Эту переменную можно изменить во время выполнения, чтобы повлиять на контекст TLS, который сервер использует для новых подключений, установленных после выполнения ALTER INSTANCE RELOAD TLS или после перезапуска, если значение переменной сохранилось. См. Конфигурация и мониторинг серверной стороны во время выполнения для шифрованных подключений.

  • ssl_crlpath

    Формат командной строки --ssl-crlpath=dir_name
    Системная переменная ssl_crlpath
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Имя каталога
    Значение по умолчанию NULL

    Путь к каталогу, содержащему файлы списков аннулированных сертификатов в формате PEM.

    Эту переменную можно изменить во время выполнения, чтобы повлиять на контекст TLS, который сервер использует для новых подключений, установленных после выполнения ALTER INSTANCE RELOAD TLS или после перезапуска, если значение переменной сохранилось. См. Конфигурация и мониторинг серверной стороны во время выполнения для шифрованных подключений.

  • ssl_fips_mode

    Формат командной строки --ssl-fips-mode={OFF|ON|STRICT}
    Устаревший Да
    Системная переменная ssl_fips_mode
    Область видимости Глобальная
    Динамический Нет
    SET_VAR Подсказка применяется Нет
    Тип Перечисление
    Значение по умолчанию OFF
    Допустимые значения

    OFF (или 0)

    ON (или 1)

    STRICT (или 2)

    Управляет включением режима FIPS на стороне сервера. Системная переменная ssl_fips_mode отличается от других системных переменных ssl_xxx тем, что она не используется для управления тем, разрешает ли сервер зашифрованные соединения, а скорее для того, чтобы повлиять на то, какие криптографические операции разрешены. См. Раздел 8.8, «Поддержка FIPS».

    Допускаются следующие значения ssl_fips_mode:

    • OFF (или 0): Отключить режим FIPS.

    • ON (или 1): Включить режим FIPS.

    • STRICT (или 2): Включить строгий режим “строгий” FIPS.

    Примечание

    Если модуль OpenSSL FIPS Object недоступен, единственным допустимым значением для ssl_fips_mode является OFF. В этом случае установка ssl_fips_mode в значение ON или STRICT при запуске приводит к тому, что сервер выдает сообщение об ошибке и завершает работу.

    Этот параметр устарел и стал доступен только для чтения. Ожидается, что он будет удален в будущей версии MySQL.

  • ssl_key

    Формат командной строки --ssl-key=file_name
    Системная переменная ssl_key
    Область видимости Глобальная
    Динамический Да
    SET_VAR Подсказка применяется Нет
    Тип Имя файла
    Значение по умолчанию NULL

    Имя пути к файлу закрытого ключа сервера SSL в формате PEM. Для повышения безопасности используйте сертификат с размером ключа RSA не менее 2048 бит.

    Если файл ключа защищен парольной фразой, сервер запрашивает у пользователя парольную фразу. Пароль должен быть введен интерактивно; он не может храниться в файле. Если парольная фраза неверна, программа продолжает работу, как если бы она не могла прочитать ключ.

    Эта переменная может быть изменена во время выполнения, чтобы повлиять на контекст TLS, который сервер использует для новых соединений, установленных после выполнения ALTER INSTANCE RELOAD TLS или после перезапуска, если значение переменной было сохранено. См. Конфигурацию и мониторинг времени выполнения на стороне сервера для зашифрованных соединений.

  • ssl_session_cache_mode

    Формат командной строки --ssl_session_cache_mode={ON|OFF}
    Системная переменная ssl_session_cache_mode
    Область видимости Глобальная
    Динамический Да
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию ON
    Допустимые значения

    ON

    OFF

    Управляет включением кэша сеансов в памяти на стороне сервера и генерацией билетов сеанса сервером. Режим по умолчанию — ON (включить режим кэша сеансов). Изменение системной переменной ssl_session_cache_mode вступает в силу только после выполнения оператора ALTER INSTANCE RELOAD TLS или после перезапуска, если значение переменной было сохранено.

    Допускаются следующие значения ssl_session_cache_mode:

    • ON: Включить режим кэша сеансов.

    • OFF: Отключить режим кэша сеансов.

    Сервер не объявляет о своей поддержке возобновления сеанса, если значение этой системной переменной равно OFF. При работе на OpenSSL 1.0.x билеты сеанса всегда генерируются, но билеты не могут использоваться, когда ssl_session_cache_mode включен.

    Текущее действующее значение для ssl_session_cache_mode можно наблюдать с помощью переменной состояния Ssl_session_cache_mode.

  • ssl_session_cache_timeout

    Формат командной строки --ssl_session_cache_timeout
    Системная переменная ssl_session_cache_timeout
    Область видимости Глобальная
    Динамический Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 300
    Минимальное значение 0
    Максимальное значение 84600
    Единица измерения секунды

    Устанавливает период времени, в течение которого разрешено повторное использование предыдущего сеанса при установлении нового зашифрованного соединения с сервером, при условии, что системная переменная ssl_session_cache_mode включена и доступны данные предыдущего сеанса. Если время ожидания сеанса истекло, сеанс больше не может быть повторно использован.

    Значение по умолчанию равно 300 секундам, а максимальное значение равно 84600 (или один день в секундах). Изменение системной переменной ssl_session_cache_timeout вступает в силу только после выполнения оператора ALTER INSTANCE RELOAD TLS или после перезапуска, если значение переменной было сохранено. Текущее действующее значение для ssl_session_cache_timeout можно наблюдать с помощью переменной состояния Ssl_session_cache_timeout.

  • statement_id

    Системная переменная statement_id
    Область видимости Сеанс
    Динамический Нет
    SET_VAR Подсказка применяется Нет
    Тип Целое число

    Каждому оператору, выполняемому в текущем сеансе, присваивается порядковый номер. Это можно использовать вместе с системной переменной session_track_system_variables для идентификации этого оператора в таблицах Performance Schema, таких как таблица events_statements_history.

  • stored_program_cache

    Формат командной строки --stored-program-cache=#
    Переменная системы stored_program_cache
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 256
    Минимальное значение 16
    Максимальное значение 524288

    Устанавливает мягкое верхнее ограничение для числа кэшированных хранимых процедур на соединение. Значение этой переменной указывается в виде количества хранимых процедур, хранящихся в каждом из двух кэшей, поддерживаемых сервером MySQL для хранимых процедур и хранимых функций соответственно.

    При выполнении хранимой процедуры размер этого кэша проверяется перед разбором первого или верхнего уровня оператора в процедуре; если количество процедур одного типа (хранимые процедуры или хранимые функции в зависимости от выполняемой) превышает предел, заданный этой переменной, соответствующий кэш очищается, и освобождается память, ранее выделенная для кэшированных объектов. Это позволяет безопасно очистить кэш, даже если между хранимыми процедурами существуют зависимости.

    Кэши хранимых процедур и хранимых функций существуют параллельно с кэшем определения хранимых программ. Кэши хранимых процедур и функций относятся к каждому соединению, в то время как кэш определения хранимых программ общий. Существование объектов в кэшах хранимых процедур и хранимых функций не зависит от существования объектов в кэше определения хранимых программ, и наоборот. Для получения дополнительной информации см. Раздел 16.4, «Кэш объектов словаря данных».

  • stored_program_definition_cache

    Формат командной строки --stored-program-definition-cache=#
    Переменная системы stored_program_definition_cache
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 256
    Минимальное значение 256
    Максимальное значение 524288

    Определяет предел количества объектов определения хранимых программ, используемых и неиспользуемых, которые могут храниться в кэше объектов словаря.

    Неиспользуемые объекты определения хранимых программ хранятся в кэше объектов словаря только тогда, когда количество используемых объектов меньше емкости, определенной stored_program_definition_cache.

    Значение 0 означает, что объекты определения хранимых программ хранятся в кэше объектов словаря только во время их использования.

    Раздел кэша определения хранимых программ существует параллельно с кэшами хранимых процедур и хранимых функций, настроенных с помощью параметра stored_program_cache.

    Параметр stored_program_cache устанавливает мягкое верхнее ограничение для числа кэшированных хранимых процедур или функций на соединение, и ограничение проверяется каждый раз, когда соединение выполняет хранимую процедуру или функцию. Раздел кэша определения хранимых программ, с другой стороны, является общим кэшем, хранящим объекты определения хранимых программ для других целей. Существование объектов в разделе кэша определения хранимых программ не зависит от существования объектов в кэше хранимых процедур или кэше хранимых функций, и наоборот.

    Для получения дополнительной информации см. Раздел 16.4, «Кэш объектов словаря данных».

  • super_read_only

    Формат командной строки --super-read-only[={OFF|ON}]
    Переменная системы super_read_only
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Если переменная системы read_only включена, сервер разрешает только клиентские обновления от пользователей, имеющих привилегию CONNECTION_ADMIN (или устаревшую привилегию SUPER). Если также включена переменная системы super_read_only, сервер запрещает обновления клиентов даже от пользователей, имеющих привилегию CONNECTION_ADMIN или SUPER. См. описание переменной системы read_only для описания режима только для чтения и информации о взаимодействии read_only и super_read_only.

    Клиентские обновления, предотвращённые при включении super_read_only, включают операции, которые, возможно, не кажутся обновлениями, например, CREATE FUNCTION (для установки загружаемой функции), INSTALL PLUGIN и INSTALL COMPONENT. Эти операции запрещены, так как они подразумевают изменения в схеме системы mysql.

    Аналогично, если планировщик событий включён, включение переменной системы super_read_only препятствует обновлению временных меток «последнего выполнения» событий в таблице словаря данных events. Это приводит к остановке планировщика событий в следующий раз, когда он попытается выполнить запланированное событие, после записи сообщения в журнал ошибок сервера. (В этой ситуации переменная системы event_scheduler не меняется со значения ON на OFF. Последствие заключается в том, что эта переменная отклоняет намерение DBA включить или отключить планировщик событий, где его фактическое состояние запущен/остановлен может отличаться.). Если переменная super_read_only будет отключена после включения, сервер автоматически перезапустит планировщик событий при необходимости.

    Изменения в super_read_only на сервере-источнике репликации не реплицируются на сервера-репликации. Значение может быть установлено на реплике независимо от настроек на источнике.

  • syseventlog.facility

    Формат командной строки --syseventlog.facility=value
    Переменная системы syseventlog.facility
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Строка
    Значение по умолчанию daemon

    Область, для вывода записей в журнал ошибок, записанных в syslog (какой тип программы отправляет сообщение). Эта переменная недоступна, если компонент журнала ошибок log_sink_syseventlog не установлен. См. Раздел 7.4.2.8, «Ведение журнала ошибок в системный журнал».

    Допустимые значения могут варьироваться в зависимости от операционной системы; см. документацию вашей системы syslog.

    Эта переменная не существует в Windows.

  • syseventlog.include_pid

    Формат командной строки --syseventlog.include-pid[={OFF|ON}]
    Переменная системы syseventlog.include_pid
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    Включать ли идентификатор процесса сервера в каждую строку вывода журнала ошибок, записываемого в syslog. Эта переменная недоступна, если компонент журнала ошибок log_sink_syseventlog не установлен. См. Раздел 7.4.2.8, «Ведение журнала ошибок в системный журнал».

    Эта переменная не существует в Windows.

  • syseventlog.tag

    Формат командной строки --syseventlog.tag=tag
    Системная переменная syseventlog.tag
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Строка
    Значение по умолчанию empty string

    Тег, добавляемый к идентификатору сервера в выходных данных журнала ошибок, записываемых в syslog или Журнал событий Windows. Эта переменная недоступна, если компонент журнала ошибок log_sink_syseventlog не установлен. См. Раздел 7.4.2.8, «Журналирование ошибок в системный журнал».

    По умолчанию тег не задан, поэтому идентификатор сервера просто MySQL в Windows и mysqld на других платформах. Если указано значение тега tag, оно добавляется к идентификатору сервера с префиксом дефис, что приводит к идентификатору сервера syslog с идентификатором mysqld-tag (или MySQL-tag в Windows).

    В Windows, чтобы использовать тег, которого ещё нет, сервер должен запускаться от учётной записи с правами администратора, чтобы разрешить создание записи реестра для тега. Повышенные права не требуются, если тег уже существует.

  • system_time_zone

    Системная переменная system_time_zone
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Строка

    Временная зона сервера. При запуске сервера он наследует настройку временной зоны от системных настроек компьютера, возможно, изменённую окружением учётной записи, используемой для запуска сервера, или скриптом запуска. Значение используется для установки system_time_zone. Для явного указания системной временной зоны задайте переменную окружения TZ или используйте опцию --timezone скрипта mysqld_safe.

    Помимо инициализации во время запуска, если временная зона хоста сервера меняется (например, из-за перехода на летнее время), system_time_zone отражает это изменение, что имеет такие последствия для приложений:

    • Запросы, ссылающиеся на system_time_zone, получат одно значение до перехода на летнее время и другое значение после перехода.

    • Для запросов, которые начинают выполняться до перехода на летнее время и заканчиваются после перехода, system_time_zone остаётся постоянным в рамках запроса, так как значение обычно кэшируется в начале выполнения.

    Переменная system_time_zone отличается от переменной time_zone. Хотя они могут иметь одинаковое значение, последняя переменная используется для инициализации временной зоны для каждого подключённого клиента. См. Раздел 7.1.15, «Поддержка временных зон в MySQL-сервере».

  • table_definition_cache

    Формат командной строки --table-definition-cache=#
    Системная переменная table_definition_cache
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию -1 (указывает автоматическое изменение размера; не присваивайте это значение)
    Минимальное значение 400
    Максимальное значение 524288

    Количество определений таблиц, которые могут храниться в кэше определений таблиц. Если вы используете большое количество таблиц, вы можете создать большой кэш определений таблиц, чтобы ускорить открытие таблиц. Кэш определений таблиц занимает меньше места и не использует дескрипторы файлов, в отличие от обычного кэша таблиц. Минимальное значение равно 400. Значение по умолчанию основано на следующей формуле, ограниченной пределом 2000:

    MIN(400 + table_open_cache / 2, 2000)
    

    Для InnoDB настройка table_definition_cache служит мягким ограничением для количества экземпляров таблиц в кэше объектов словаря и количества табличных пространств файлов-по-таблице, которые могут быть открыты одновременно.

    Если количество экземпляров таблиц в кэше объектов словаря превышает предел table_definition_cache, механизм LRU начинает помечать экземпляры таблиц для удаления и в конечном итоге удаляет их из кэша объектов словаря.

    Количество открытых таблиц с кэшированными метаданными может быть выше предела table_definition_cache из-за экземпляров таблиц с отношениями внешних ключей, которые не помещаются в список LRU.

    Количество открытых табличных пространств файлов-по-таблице ограничено настройками table_definition_cache и innodb_open_files. Если обе переменные установлены, используется наибольшее значение. Если ни одна переменная не установлена, используется настройка table_definition_cache, имеющая более высокое значение по умолчанию. Если количество открытых табличных пространств превышает предел, определённый table_definition_cache или innodb_open_files, механизм LRU проверяет список LRU на предмет файлов табличного пространства, которые полностью очищены и в данный момент не расширяются. Этот процесс выполняется каждый раз при открытии нового табличного пространства. Закрываются только неактивные табличные пространства.

    Кэш определений таблиц существует параллельно с разделами кэша определений таблиц в . Оба кэша хранят определения таблиц, но обслуживают разные части MySQL-сервера. Объекты в одном кэше не зависят от существования объектов в другом. Дополнительную информацию см. в Разделе 16.4, «Кэш объектов словаря».

  • table_encryption_privilege_check

    Формат командной строки --table-encryption-privilege-check[={OFF|ON}]
    Системная переменная table_encryption_privilege_check
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Управляет проверкой привилегий TABLE_ENCRYPTION_ADMIN, которая выполняется при создании или изменении схемы или общего табличного пространства с шифрованием, отличающимся от настройки default_table_encryption, или при создании или изменении таблицы с настройкой шифрования, отличающейся от шифрования схемы по умолчанию. По умолчанию проверка отключена.

    Установка table_encryption_privilege_check во время выполнения требует привилегии SUPER.

    table_encryption_privilege_check поддерживает синтаксис SET PERSIST и SET PERSIST_ONLY. См. Раздел 7.1.9.3, «Постоянные системные переменные».

    Для получения дополнительной информации см. Определение значения шифрования по умолчанию для схем и общих табличных пространств.

  • table_open_cache

    Формат командной строки --table-open-cache=#
    Системная переменная table_open_cache
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применима Нет
    Тип Целое число
    Значение по умолчанию 4000
    Минимальное значение 1
    Максимальное значение 524288

    Количество открытых таблиц для всех потоков. Увеличение этого значения увеличивает количество дескрипторов файлов, необходимых для mysqld. Эффективное значение этой переменной является большим из эффективного значения open_files_limit - 10 - эффективного значения max_connections / 2 и 400; то есть

    MAX(
        (open_files_limit - 10 - max_connections) / 2,
        400
       )
    

    Вы можете проверить, нужно ли увеличивать кэш таблиц, проверив переменную состояния Opened_tables. Если значение Opened_tables велико, и вы не часто используете FLUSH TABLES (что просто заставляет все таблицы закрываться и открываться заново), то вам следует увеличить значение переменной table_open_cache. Для получения дополнительной информации о кэше таблиц см. Раздел 10.4.3.1, «Как MySQL открывает и закрывает таблицы».

  • table_open_cache_instances

    Формат командной строки --table-open-cache-instances=#
    Системная переменная table_open_cache_instances
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применима Нет
    Тип Целое число
    Значение по умолчанию 16
    Минимальное значение 1
    Максимальное значение 64

    Количество экземпляров кэша открытых таблиц. Для повышения масштабируемости за счет уменьшения конкуренции между сессиями кэш открытых таблиц может быть разбит на несколько меньших экземпляров кэша размером table_open_cache / table_open_cache_instances . Сессии нужно заблокировать только один экземпляр, чтобы получить к нему доступ для операторов DML. Это сегментирует доступ к кэшу между экземплярами, что позволяет повысить производительность операций, использующих кэш, когда много сессий обращаются к таблицам. (Операторы DDL по-прежнему требуют блокировки всего кэша, но такие операторы встречаются гораздо реже, чем операторы DML.)

    На системах, которые обычно используют 16 или более ядер, рекомендуется значение 8 или 16. Однако, если у вас много больших триггеров в ваших таблицах, которые вызывают высокую загрузку памяти, то значение по умолчанию для table_open_cache_instances может привести к чрезмерному использованию памяти. В этой ситуации может быть полезно установить table_open_cache_instances в 1, чтобы ограничить использование памяти.

  • tablespace_definition_cache

    Формат командной строки --tablespace-definition-cache=#
    Системная переменная tablespace_definition_cache
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применима Нет
    Тип Целое число
    Значение по умолчанию 256
    Минимальное значение 256
    Максимальное значение 524288

    Определяет лимит для количества объектов определения табличного пространства, как используемых, так и неиспользуемых, которые могут храниться в кэше объектов словаря.

    Неиспользуемые объекты определения табличного пространства хранятся в кэше объектов словаря только тогда, когда количество используемых объектов меньше емкости, определяемой tablespace_definition_cache.

    Значение 0 означает, что объекты определения табличного пространства хранятся в кэше объектов словаря только во время их использования.

    Для получения дополнительной информации см. Раздел 16.4, «Кэш объектов словаря».

  • temptable_max_mmap

    Формат командной строки --temptable-max-mmap=#
    Системная переменная temptable_max_mmap
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применима Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 2^64-1
    Единица измерения байты

    Определяет максимальный объем памяти (в байтах), который механизм хранения TempTable может выделить из файлов временных файлов с отображением в памяти, прежде чем он начнет сохранять данные в InnoDB внутренние временные таблицы на диске. Значение 0 (по умолчанию) отключает выделение памяти из временных файлов с отображением в памяти. Для получения дополнительной информации см. Раздел 10.4.4, «Использование внутренних временных таблиц в MySQL».

    До MySQL 8.4 этот параметр был установлен в 1 GiB вместо 0.

  • temptable_max_ram

    Формат командной строки --temptable-max-ram=#
    Системная переменная temptable_max_ram
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применима Нет
    Тип Целое число
    Значение по умолчанию 3% of total memory: min 1 GB, max 4 GB
    Минимальное значение 2097152
    Максимальное значение 2^64-1
    Единица измерения байты

    Определяет максимальный объем памяти, который может занимать механизм хранения TempTable, прежде чем он начнет сохранять данные на диск. Значение по умолчанию составляет 3% от общего объема доступной памяти на сервере, с минимальным и максимальным диапазоном по умолчанию 1–4 GiB. Для получения дополнительной информации см. Раздел 10.4.4, «Использование внутренних временных таблиц в MySQL».

    До MySQL 8.4 значение по умолчанию всегда было 1 GiB.

  • temptable_use_mmap

    Формат командной строки --temptable-use-mmap[={OFF|ON}]
    Устарело Да
    Системная переменная temptable_use_mmap
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применима Нет
    Тип Логическое
    Значение по умолчанию OFF

    Определяет, выделяет ли механизм хранения TempTable место для внутренних временных таблиц в памяти в виде временных файлов с отображением в памяти, когда объем памяти, занимаемый механизмом хранения TempTable, превышает лимит, определяемый переменной temptable_max_ram. Когда temptable_use_mmap отключен (по умолчанию), механизм хранения TempTable использует InnoDB внутренние временные таблицы на диске. Для получения дополнительной информации см. Раздел 10.4.4, «Использование внутренних временных таблиц в MySQL».

  • thread_cache_size

    Формат командной строки --thread-cache-size=#
    Системная переменная thread_cache_size
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию -1 (обозначает автоматическое изменение размера; не присваивайте это литеральное значение)
    Минимальное значение 0
    Максимальное значение 16384

    Сколько потоков сервер должен кэшировать для повторного использования. Когда клиент отключается, потоки клиента помещаются в кэш, если там меньше, чем thread_cache_size потоков. Запросы на потоки удовлетворяются за счет повторного использования потоков, взятых из кэша, если это возможно, и только когда кэш пуст, создается новый поток. Эту переменную можно увеличить для повышения производительности, если у вас много новых соединений. Обычно это не дает заметного повышения производительности, если у вас хорошая реализация потоков. Однако, если ваш сервер обрабатывает сотни соединений в секунду, вам обычно следует установить thread_cache_size достаточно большим, чтобы большинство новых соединений использовали кэшированные потоки. Изучив разницу между переменными состояния Connections и Threads_created, вы можете увидеть, насколько эффективен кэш потоков. Подробнее см. Раздел 7.1.10, «Переменные состояния сервера».

    Значение по умолчанию основано на следующей формуле, ограниченной лимитом в 100:

    8 + (max_connections / 100)
    
  • thread_handling

    Формат командной строки --thread-handling=name
    Системная переменная thread_handling
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Перечисление
    Значение по умолчанию one-thread-per-connection
    Допустимые значения

    no-threads

    one-thread-per-connection

    loaded-dynamically

    Модель обработки потоков, используемая сервером для потоков соединений. Допустимые значения: no-threads (сервер использует один поток для обработки одного соединения), one-thread-per-connection (сервер использует один поток для обработки каждого клиентского соединения) и loaded-dynamically (устанавливается плагином пула потоков при его инициализации). no-threads полезно для отладки в Linux; см. Раздел 7.9, «Отладка MySQL».

  • thread_pool_algorithm

    Формат командной строки --thread-pool-algorithm=#
    Системная переменная thread_pool_algorithm
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 1

    Эта переменная управляет тем, какой алгоритм использует плагин пула потоков:

    • 0: Использовать консервативный алгоритм с низкой степенью параллелизма.

    • 1: Использовать агрессивный алгоритм с высокой степенью параллелизма, который работает лучше с оптимальным количеством потоков, но производительность может снизиться, если количество соединений достигнет очень высоких значений.

    Эта переменная доступна только в том случае, если включен плагин пула потоков. См. Раздел 7.6.3, «Пул потоков MySQL Enterprise».

  • thread_pool_dedicated_listeners

    Формат командной строки --thread-pool-dedicated-listeners
    Системная переменная thread_pool_dedicated_listeners
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию OFF

    Выделяет поток прослушивателя в каждой группе потоков для прослушивания входящих инструкций от соединений, назначенных группе.

    • OFF: (По умолчанию) Отключает выделенные потоки прослушивателя.

    • ON: Выделяет поток прослушивателя в каждой группе потоков для прослушивания входящих инструкций от соединений, назначенных группе. Выделенные потоки прослушивателя не выполняют запросы.

    Включение thread_pool_dedicated_listeners полезно только тогда, когда предел транзакций определяется thread_pool_max_transactions_limit. В противном случае thread_pool_dedicated_listeners не следует включать.

    Служба HeatWave использует эту переменную, которая доступна только в MySQL Enterprise Edition и не поддерживается в MySQL 8.4.

  • thread_pool_high_priority_connection

    Формат командной строки --thread-pool-high-priority-connection=#
    Системная переменная thread_pool_high_priority_connection
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 1

    Эта переменная влияет на очереди новых инструкций перед выполнением. Если значение равно 0 (ложь, по умолчанию), очередь инструкций использует как очереди низкого приоритета, так и высокого приоритета. Если значение равно 1 (истина), помещенные в очередь инструкции всегда переходят в очередь высокого приоритета.

    Эта переменная доступна только в том случае, если включен плагин пула потоков. См. Раздел 7.6.3, «Пул потоков MySQL Enterprise».

  • thread_pool_longrun_trx_limit

    Формат командной строки --thread-pool-longrun-trx-limit=#
    Системная переменная thread_pool_longrun_trx_limit
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 2000
    Минимальное значение 10
    Максимальное значение 60*60*24
    Единица измерения мс

    Когда используется thread_pool_max_transactions_limit, существует максимальное количество транзакций, которые могут быть активны в каждой группе потоков. Если все доступное количество используется долго работающими транзакциями, любая дополнительная транзакция, назначенная группе, блокируется до завершения одной из долго работающих транзакций, что пользователи могут воспринимать как необъяснимый зависание.

    Чтобы смягчить эту проблему, ограничение для данной группы потоков приостанавливается, если все потоки, использующие максимальное количество транзакций, выполнялись дольше, чем интервал (в миллисекундах), указанный thread_pool_longrun_trx_limit. Когда количество долго работающих транзакций уменьшается, thread_pool_max_transactions_limit может быть (и будет) снова включено. Для этого количество текущих транзакций должно быть меньше thread_pool_max_transactions_limit / 2 для интервала, определенного как показано:

    MIN( MAX(thread_pool_longrun_trx_limit * 15, 5000), 30000)
    

    Эта переменная доступна только в том случае, если включен плагин пула потоков. См. Раздел 7.6.3, «Пул потоков MySQL Enterprise».

  • thread_pool_max_active_query_threads

    Формат командной строки --thread-pool-max-active-query-threads
    Переменная системы thread_pool_max_active_query_threads
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 512

    Максимальное допустимое количество активных (запущенных) потоков запросов в группе. Если значение равно 0, плагин пула потоков использует до максимально возможного числа потоков.

    Эта переменная доступна только если плагин пула потоков включен. См. Раздел 7.6.3, «Пул потоков MySQL Enterprise».

  • thread_pool_max_transactions_limit

    Формат командной строки --thread-pool-max-transactions-limit
    Переменная системы thread_pool_max_transactions_limit
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 1000000

    Максимальное число транзакций, разрешенных плагином пула потоков. Определение лимита транзакций связывает поток с транзакцией до ее подтверждения, что помогает стабилизировать пропускную способность при высокой конкурентности.

    Значение по умолчанию 0 означает, что ограничения на транзакции нет. Переменная динамическая, но ее нельзя изменить с 0 на более высокое значение во время выполнения и наоборот. ненулевое значение при запуске позволяет динамическую настройку во время выполнения. Для настройки thread_pool_max_transactions_limit во время выполнения требуется привилегия CONNECTION_ADMIN.

    При определении лимита транзакций включение thread_pool_dedicated_listeners создаёт отдельный поток слушателя в каждой группе потоков. Дополнительный выделенный поток слушателя потребляет больше ресурсов и влияет на производительность пула потоков. Поэтому thread_pool_dedicated_listeners следует использовать с осторожностью.

    Когда предел, определенный thread_pool_max_transactions_limit, достигнут, новые подключения или транзакции по существующим подключениям могут зависнуть до завершения одной или нескольких существующих транзакций. В многих случаях можно устранить эту проблему, установив thread_pool_longrun_trx_limit, чтобы максимально увеличить транзакцию, когда количество текущих транзакций соответствует ей в течение заданного периода времени. Если существующие подключения по-прежнему блокируются или работают долго даже после попытки этого, возможно, потребуется привилегированное подключение для доступа к серверу, чтобы увеличить предел, удалить предел или завершить запущенные транзакции. См. Привилегированные подключения.

    Сервис HeatWave использует эту переменную, которая доступна только с MySQL Enterprise Edition и не поддерживается в MySQL 8.4.

  • thread_pool_max_unused_threads

    Формат командной строки --thread-pool-max-unused-threads=#
    Переменная системы thread_pool_max_unused_threads
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 4096

    Максимальное допустимое количество неиспользуемых потоков в пуле потоков. Эта переменная позволяет ограничить объем памяти, используемый спящими потоками.

    Значение 0 (по умолчанию) означает отсутствие ограничения на количество спящих потоков. Значение N, где N больше 0, означает 1 поток-потребитель и N−1 резервных потоков. В этом случае, если поток готов перейти в состояние ожидания, но количество спящих потоков уже достигло максимума, поток завершается, а не переходит в состояние ожидания.

    Спящий поток находится либо в состоянии ожидания как поток-потребитель, либо как резервный поток. Пул потоков разрешает один поток быть потоком-потребителем при ожидании. Если поток переходит в состояние ожидания, и нет существующего потока-потребителя, он ожидает как поток-потребитель. Когда поток необходимо разбудить, выбирается поток-потребитель, если он есть. Резервный поток выбирается только в случае отсутствия потока-потребителя для пробуждения.

    Эта переменная доступна только если плагин пула потоков включен. См. Раздел 7.6.3, «Пул потоков MySQL Enterprise».

  • thread_pool_prio_kickup_timer

    Формат командной строки --thread-pool-prio-kickup-timer=#
    Переменная системы thread_pool_prio_kickup_timer
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 1000
    Минимальное значение 0
    Максимальное значение 4294967294
    Единица измерения миллисекунды

    Эта переменная влияет на запросы, ожидающие выполнения в очереди низкого приоритета. Значение — количество миллисекунд до перемещения ожидающего запроса в очередь высокого приоритета. Значение по умолчанию — 1000 (1 секунда).

    Эта переменная доступна только если плагин пула потоков включен. См. Раздел 7.6.3, «Пул потоков MySQL Enterprise».

  • thread_pool_query_threads_per_group

    Формат командной строки --thread-pool-query-threads-per-group
    Переменная системы thread_pool_query_threads_per_group
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 1
    Минимальное значение 1
    Максимальное значение 4096

    Максимальное число потоков запросов, разрешенных в группе потоков. Максимальное значение — 4096, но если thread_pool_max_transactions_limit установлено, thread_pool_query_threads_per_group не должно превышать этого значения.

    Значение по умолчанию 1 означает, что в каждой группе потоков имеется один активный поток запросов, что хорошо подходит для многих нагрузок. Если у вас используются алгоритмы пула потоков высокой конкуренции (thread_pool_algorithm = 1), рассмотрите возможность увеличения значения, если вы сталкиваетесь с замедлением отклика из-за длительных транзакций.

    Для настройки thread_pool_query_threads_per_group во время выполнения требуется привилегия CONNECTION_ADMIN.

    Если вы уменьшите значение thread_pool_query_threads_per_group во время выполнения, текущие выполняемые пользовательские запросы допускаются до завершения, а затем перемещаются в резервный пул или завершаются. Если вы увеличиваете значение во время выполнения, и группе потоков нужны дополнительные потоки, они берутся из резервного пула, если это возможно, в противном случае создаются новые.

    Сервис HeatWave использует эту переменную, которая доступна только с MySQL Enterprise Edition и не поддерживается в MySQL 8.4.

  • thread_pool_size

    Формат командной строки --thread-pool-size=#
    Системная переменная thread_pool_size
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 16
    Минимальное значение 1
    Максимальное значение 512

    Количество групп потоков в пуле потоков. Это наиболее важный параметр, определяющий производительность пула потоков. Он влияет на то, сколько инструкций может выполняться одновременно. Если указано значение, выходящее за пределы допустимого диапазона, плагин пула потоков не загружается, и сервер записывает сообщение в журнал ошибок.

    Эта переменная доступна только в том случае, если включен плагин пула потоков. См. Раздел 7.6.3, «Пул потоков MySQL Enterprise».

  • thread_pool_stall_limit

    Формат командной строки --thread-pool-stall-limit=#
    Системная переменная thread_pool_stall_limit
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 6
    Минимальное значение 4
    Максимальное значение 600
    Единица измерения миллисекунды * 10

    Эта переменная влияет на выполнение инструкций. Значение представляет собой количество времени, которое инструкция должна завершиться после начала выполнения, прежде чем она будет определена как зависшая, после чего пул потоков разрешает группе потоков начать выполнение другой инструкции. Значение измеряется в единицах по 10 миллисекунд, поэтому значение по умолчанию 6 означает 60 мс. Короткие значения ожидания позволяют потокам запускаться быстрее. Короткие значения также лучше для предотвращения ситуаций взаимной блокировки. Длинные значения ожидания полезны для рабочих нагрузок, которые включают длительные инструкции, чтобы избежать запуска слишком большого количества новых инструкций, пока выполняются текущие.

    Эта переменная доступна только в том случае, если включен плагин пула потоков. См. Раздел 7.6.3, «Пул потоков MySQL Enterprise».

  • thread_pool_transaction_delay

    Формат командной строки --thread-pool-transaction-delay
    Системная переменная thread_pool_transaction_delay
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 300000

    Период задержки перед выполнением новой транзакции в миллисекундах. Максимальное значение — 300000 (5 минут).

    Задержка транзакции может использоваться в случаях, когда параллельные транзакции влияют на производительность других операций из-за конкуренции за ресурсы. Например, если параллельные транзакции влияют на создание индекса или операцию изменения размера буферного пула онлайн, можно настроить задержку транзакции, чтобы уменьшить конкуренцию за ресурсы во время выполнения этих операций.

    Рабочие потоки спят в течение количества миллисекунд, указанных thread_pool_transaction_delay перед выполнением новой транзакции.

    Настройка thread_pool_transaction_delay не влияет на запросы, выданные из привилегированного соединения (соединение, назначенное группе потоков Admin). Эти запросы не подвержены настроенной задержке транзакции.

  • thread_stack

    Формат командной строки --thread-stack=#
    Системная переменная thread_stack
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 1048576
    Минимальное значение 131072
    Максимальное значение (64-битные платформы) 18446744073709550592
    Максимальное значение (32-битные платформы) 4294966272
    Единица измерения байты
    Размер блока 1024

    Размер стека для каждого потока. Значение по умолчанию достаточно велико для нормальной работы. Если размер стека потока слишком мал, это ограничивает сложность инструкций SQL, которые может обрабатывать сервер, глубину рекурсии хранимых процедур и другие действия, потребляющие много памяти.

  • time_zone

    Системная переменная time_zone
    Область видимости Глобальная, сеанса
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Строка
    Значение по умолчанию SYSTEM
    Минимальное значение -13:59
    Максимальное значение +14:00

    Текущий часовой пояс. Эта переменная используется для инициализации часового пояса для каждого клиента, который подключается. По умолчанию начальное значение этого равно 'SYSTEM' (что означает “использовать значение system_time_zone”). Значение может быть указано явно при запуске сервера с помощью параметра --default-time-zone. См. Раздел 7.1.15, «Поддержка часовых поясов сервера MySQL».

    Примечание

    Если установлено значение SYSTEM, каждый вызов функции MySQL, требующий вычисления часового пояса, выполняет вызов системной библиотеки для определения текущего системного часового пояса. Этот вызов может быть защищен глобальным мьютексом, что приводит к конкуренции.

  • timestamp

    Системная переменная timestamp
    Область видимости Сессия
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Числовой
    Значение по умолчанию UNIX_TIMESTAMP()
    Минимальное значение 1
    Максимальное значение 2147483647

    Устанавливает время для этого клиента. Это используется для получения исходного временного штампа, если вы используете бинарный журнал для восстановления строк. timestamp_value должно быть временным штампом Unix-эпохи (значение, подобное возвращаемому UNIX_TIMESTAMP(), а не значение в формате 'YYYY-MM-DD hh:mm:ss') или DEFAULT.

    Установка timestamp в постоянное значение приводит к сохранению этого значения до тех пор, пока оно не будет изменено снова. Установка timestamp в DEFAULT приводит к тому, что его значением станет текущая дата и время на момент доступа к нему.

    timestamp является DOUBLE, а не BIGINT, поскольку его значение включает часть микросекунд. Максимальное значение соответствует '2038-01-19 03:14:07' UTC, так же как и для типа данных TIMESTAMP.

    SET timestamp влияет на значение, возвращаемое NOW(), но не SYSDATE(). Это означает, что настройки временных меток в бинарном журнале не влияют на вызовы SYSDATE(). Сервер может быть запущен с параметром --sysdate-is-now, чтобы SYSDATE() стал синонимом NOW(), в этом случае SET timestamp влияет на обе функции.

  • tls_certificates_enforced_validation

    Формат командной строки --tls-certificates-enforced-validation[={OFF|ON}]
    Системная переменная tls_certificates_enforced_validation
    Область видимости Глобальная
    Динамическая Нет
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию OFF

    Во время запуска сервер проверяет наличие местоположения каждого требуемого файла сертификата SSL в каталоге данных по умолчанию, если местоположения файлов не указаны в командной строке. Однако сервер не проверяет файлы сертификатов и, следовательно, может запуститься с недействительным сертификатом. Системная переменная tls_certificates_enforced_validation управляет тем, применяется ли проверка сертификатов при запуске. Обнаружение недействительного сертификата прерывает выполнение запуска, когда включена проверка. По умолчанию проверка сертификатов отключена (OFF).

    Принудительную проверку можно включить, указав параметр --tls-certificates-enforced-validation в командной строке со значением ON или без него. При включенной принудительной проверке сертификаты также проверяются при их перезагрузке с помощью оператора ALTER INSTANCE RELOAD TLS. Эта системная переменная не может сохраняться между перезагрузками. Для получения дополнительной информации см. Настройка принудительной проверки сертификатов.

  • tls_ciphersuites

    Формат командной строки --tls-ciphersuites=ciphersuite_list
    Системная переменная tls_ciphersuites
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию NULL

    Какие наборы шифров разрешает сервер для зашифрованных соединений, использующих TLSv1.3. Значение представляет собой список из нуля или более имен наборов шифров, разделенных двоеточием, из числа перечисленных здесь:

    • TLS_AES_128_GCM_SHA256

    • TLS_AES_256_GCM_SHA384

    • TLS_CHACHA20_POLY1305_SHA256

    • TLS_AES_128_CCM_SHA256

    Попытка включить любые значения в список шифров, которые не показаны здесь при установке этой переменной, приводит к ошибке ().

    Наборы шифров, которые можно указать для этой переменной, зависят от библиотеки SSL, используемой для компиляции MySQL. Если эта переменная не установлена, ее значение по умолчанию — NULL, что означает, что сервер разрешает набор шифров по умолчанию. Если переменная установлена в пустую строку, наборы шифров не включены, и зашифрованные соединения не могут быть установлены. Для получения дополнительной информации см. Раздел 8.3.2, «Зашифрованные соединения, протоколы TLS и шифры».

  • tls_version

    Формат командной строки --tls-version=protocol_list
    Системная переменная tls_version
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию TLSv1.2,TLSv1.3

    Какие протоколы разрешает сервер для зашифрованных соединений. Значение представляет собой список из одного или нескольких имен протоколов, разделенных запятыми, которые не чувствительны к регистру. Протоколы, которые можно указать для этой переменной, зависят от библиотеки SSL, используемой для компиляции MySQL. Должны быть выбраны разрешенные протоколы, чтобы не оставлять “пробелов” в списке. Подробнее см. Раздел 8.3.2, «Зашифрованные соединения, протоколы TLS и шифры».

    Эта переменная может быть изменена во время выполнения, чтобы повлиять на контекст TLS, который сервер использует для новых соединений. См. Настройка и мониторинг параметров выполнения на стороне сервера для зашифрованных соединений.

    Важно
    • MySQL 8.4 не поддерживает протоколы соединения TLSv1 и TLSv1.1. См. Удаление поддержки протоколов TLSv1 и TLSv1.1 для получения дополнительной информации.

    • Поддержка протокола TLSv1.3 доступна в MySQL 8.4 при условии, что сервер MySQL был скомпилирован с использованием OpenSSL 1.1.1 или более поздней версии. Сервер проверяет версию OpenSSL при запуске, и если она ниже 1.1.1, TLSv1.3 удаляется из значения по умолчанию для системной переменной. В этом случае значение по умолчанию — TLSv1.2.

    Установка этой переменной в пустую строку отключает зашифрованные соединения.

  • tmp_table_size

    Формат командной строки --tmp-table-size=#
    Системная переменная tmp_table_size
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применимо Да
    Тип Целое число
    Значение по умолчанию 16777216
    Минимальное значение 1024
    Максимальное значение 18446744073709551615
    Единица измерения байты

    Определяет максимальный размер внутренних временных таблиц в оперативной памяти, созданных хранилищами данных MEMORY и TempTable. Если внутренняя временная таблица в оперативной памяти превышает этот размер, она автоматически преобразуется во временную таблицу на диске.

    Переменная tmp_table_size не применяется к пользовательским таблицам MEMORY. Пользовательские временные таблицы TempTable не поддерживаются.

    При использовании хранилища данных MEMORY для внутренних временных таблиц в оперативной памяти, фактический предел размера – меньшее из значений tmp_table_size и max_heap_table_size. Настройка max_heap_table_size не применяется к таблицам TempTable.

    Увеличьте значение tmp_table_size (и max_heap_table_size, если необходимо, при использовании хранилища данных MEMORY для внутренних временных таблиц в оперативной памяти), если вы выполняете много сложных запросов GROUP BY и у вас много памяти.

    Вы можете сравнить количество созданных внутренних временных таблиц на диске с общим количеством созданных временных таблиц, сравнив значения Created_tmp_disk_tables и Created_tmp_tables.

    См. также Раздел 10.4.4, «Использование внутренних временных таблиц в MySQL».

  • tmpdir

    Формат командной строки --tmpdir=dir_name
    Системная переменная tmpdir
    Область действия Глобальная
    Динамическая Нет
    SET_VAR Применимо Нет
    Тип Имя каталога

    Путь к каталогу, который будет использоваться для создания временных файлов. Это может быть полезно, если ваш каталог по умолчанию /tmp находится на разделе, который слишком мал для хранения временных таблиц. Эту переменную можно установить на список нескольких путей, которые используются по кругу. Пути должны быть разделены двоеточиями (:) в Unix и точкой с запятой (;) в Windows.

    tmpdir может быть временным местоположением, например, каталогом на файловой системе на основе памяти или каталогом, который очищается при перезапуске сервера хоста. Если сервер MySQL работает как реплика, и вы используете временное местоположение для tmpdir, рассмотрите возможность установки другого временного каталога для реплики с использованием переменной replica_load_tmpdir. Для реплики временные файлы, используемые для репликации инструкций LOAD DATA, хранятся в этом каталоге, поэтому с постоянным местоположением они могут сохраниться после перезапуска машины, хотя репликация может продолжить работу после перезапуска, если временные файлы были удалены.

    Дополнительную информацию о местоположении временных файлов см. в Разделе B.3.3.5, «Где MySQL хранит временные файлы».

  • transaction_alloc_block_size

    Формат командной строки --transaction-alloc-block-size=#
    Системная переменная transaction_alloc_block_size
    Область действия Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Целое число
    Значение по умолчанию 8192
    Минимальное значение 1024
    Максимальное значение 131072
    Единица измерения байты
    Размер блока 1024

    Количество байтов, на которое увеличивается пул памяти на транзакцию, которому требуется память. См. описание transaction_prealloc_size.

  • Уровень изоляции транзакций

    Формат командной строки --transaction-isolation=name
    Системная переменная transaction_isolation
    Область действия Глобальная, сеансовая
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Перечисление
    Значение по умолчанию REPEATABLE-READ
    Допустимые значения

    READ-UNCOMMITTED

    READ-COMMITTED

    REPEATABLE-READ

    SERIALIZABLE

    Уровень изоляции транзакций. По умолчанию используется REPEATABLE-READ.

    Уровень изоляции транзакций имеет три области действия: глобальную, сеансовую и следующую транзакцию. Эта трёхзвенная реализация приводит к некоторым нестандартным семантикам присваивания уровня изоляции, как описано далее.

    Для установки глобального уровня изоляции транзакций при запуске используйте параметр сервера --transaction-isolation.

    Во время выполнения уровень изоляции можно установить непосредственно, используя оператор SET для присвоения значения системной переменной transaction_isolation, или косвенно, используя оператор SET TRANSACTION. Если вы установите transaction_isolation напрямую на имя уровня изоляции, содержащее пробел, имя должно быть заключено в кавычки, а пробел заменён дефисом. Например, используйте этот оператор SET для установки глобального значения:

    SET GLOBAL transaction_isolation = 'READ-COMMITTED';
    

    Установка глобального значения transaction_isolation устанавливает уровень изоляции для всех последующих сеансов. Существующие сеансы не затрагиваются.

    Для установки сеансового или уровня следующей транзакции transaction_isolation, используйте оператор SET. Для большинства системных переменных сеанса эти операторы являются эквивалентными способами установки значения:

    SET @@SESSION.var_name = value;
    SET SESSION var_name = value;
    SET var_name = value;
    SET @@var_name = value;
    

    Как упоминалось ранее, уровень изоляции транзакций имеет область действия следующей транзакции, помимо глобальной и сеансовой областей действия. Для активации области действия следующей транзакции синтаксис SET присваивания значений сеансовых системных переменных имеет нестандартную семантику для transaction_isolation:

    • Для установки уровня изоляции сеанса используйте любой из этих синтаксисов:

      SET @@SESSION.transaction_isolation = value;
      SET SESSION transaction_isolation = value;
      SET transaction_isolation = value;
      

      Для каждого из этих синтаксисов применяются следующие семантики:

      • Устанавливает уровень изоляции для всех последующих транзакций, выполняемых в рамках сеанса.

      • Допускается в пределах транзакций, но не влияет на текущую выполняющуюся транзакцию.

      • Если выполняется между транзакциями, переопределяет любой предыдущий оператор, устанавливающий уровень изоляции следующей транзакции.

      • Соответствует оператору SET SESSION TRANSACTION ISOLATION LEVEL (с ключевым словом SESSION).

    • Для установки уровня изоляции следующей транзакции используйте этот синтаксис:

      SET @@transaction_isolation = value;
      

      Для этого синтаксиса применяются следующие семантики:

      • Устанавливает уровень изоляции только для следующей единственной транзакции, выполняемой в рамках сеанса.

      • Последующие транзакции возвращаются к сеансовому уровню изоляции.

      • Не допускается в пределах транзакций.

      • Соответствует оператору SET TRANSACTION ISOLATION LEVEL (без ключевого слова SESSION).

    Для получения дополнительной информации о SET TRANSACTION и его связи с системной переменной transaction_isolation, см. Раздел 15.3.7, «Оператор SET TRANSACTION».

  • transaction_prealloc_size

    Формат командной строки --transaction-prealloc-size=#
    Устаревший Да
    Системная переменная transaction_prealloc_size
    Область действия Глобальная, сеансовая
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 4096
    Минимальное значение 1024
    Максимальное значение 131072
    Единица измерения байты
    Размер блока 1024

    Существует пул памяти на транзакцию, из которого различные операции выделения памяти транзакции берут память. Начальный размер пула в байтах — transaction_prealloc_size. За каждое выделение, которое не может быть удовлетворено из пула из-за недостаточной доступной памяти, размер пула увеличивается на transaction_alloc_block_size байт. По окончании транзакции пул усекается до transaction_prealloc_size байт. Сделав transaction_prealloc_size достаточно большим для размещения всех операторов в одной транзакции, можно избежать многих malloc() вызовов.

    transaction_prealloc_size устарело, и настройка этой переменной больше не оказывает никакого эффекта. Ожидайте, что transaction_prealloc_size будет удалено в будущих версиях MySQL.

  • transaction_read_only

    Формат командной строки --transaction-read-only[={OFF|ON}]
    Системная переменная transaction_read_only
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию OFF

    Режим доступа к транзакции. Значение может быть OFF (чтение/запись; значение по умолчанию) или ON (только чтение).

    Режим доступа к транзакции имеет три области видимости: глобальную, сессии и следующую транзакцию. Эта реализация с тремя областями видимости приводит к некоторой нестандартной семантике присвоения режима доступа, как описано ниже.

    Чтобы установить глобальный режим доступа к транзакции при запуске, используйте параметр сервера --transaction-read-only.

    Во время выполнения режим доступа можно установить непосредственно с помощью оператора SET для присвоения значения системной переменной transaction_read_only или косвенно с помощью оператора SET TRANSACTION. Например, используйте этот оператор SET для установки глобального значения:

    SET GLOBAL transaction_read_only = ON;
    

    Установка глобального значения transaction_read_only устанавливает режим доступа для всех последующих сессий. Существующие сессии не затрагиваются.

    Чтобы установить значение transaction_read_only для сессии или следующего уровня, используйте оператор SET. Для большинства системных переменных сессии эти операторы являются эквивалентными способами установки значения:

    SET @@SESSION.var_name = value;
    SET SESSION var_name = value;
    SET var_name = value;
    SET @@var_name = value;
    

    Как упоминалось ранее, режим доступа к транзакции имеет область видимости «следующая транзакция» в дополнение к глобальной и областям видимости сессии. Чтобы включить установку области видимости «следующая транзакция», SET синтаксис для присвоения значений системных переменных сессии имеет нестандартную семантику для transaction_read_only,

    • Чтобы установить режим доступа к сессии, используйте любой из этих синтаксисов:

      SET @@SESSION.transaction_read_only = value;
      SET SESSION transaction_read_only = value;
      SET transaction_read_only = value;
      

      Для каждого из этих синтаксисов применяются следующие семантические правила:

      • Устанавливает режим доступа для всех последующих транзакций, выполняемых в сессии.

      • Допускается в транзакциях, но не влияет на текущую выполняющуюся транзакцию.

      • Если выполняется между транзакциями, переопределяет любое предшествующее утверждение, устанавливающее режим доступа для следующей транзакции.

      • Соответствует SET SESSION TRANSACTION {READ WRITE | READ ONLY} (с ключевым словом SESSION).

    • Чтобы установить режим доступа для следующей транзакции, используйте этот синтаксис:

      SET @@transaction_read_only = value;
      

      Для этого синтаксиса применяются следующие семантические правила:

      • Устанавливает режим доступа только для следующей отдельной транзакции, выполняемой в сессии.

      • Последующие транзакции возвращаются к режиму доступа сессии.

      • Не допускается в транзакциях.

      • Соответствует SET TRANSACTION {READ WRITE | READ ONLY} (без ключевого слова SESSION).

    Для получения дополнительной информации о SET TRANSACTION и его связи с системной переменной transaction_read_only, см. Раздел 15.3.7, «Оператор SET TRANSACTION».

  • unique_checks

    Системная переменная unique_checks
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Булево
    Значение по умолчанию ON

    Если установлено значение 1 (по умолчанию), выполняются проверки уникальности для вторичных индексов в таблицах InnoDB. Если установлено значение 0, механизмам хранения разрешается предполагать, что дубликаты ключей отсутствуют во входных данных. Если вы точно знаете, что ваши данные не содержат нарушений уникальности, вы можете установить это значение равным 0, чтобы ускорить импорт больших таблиц в InnoDB.

    Установка этой переменной в 0 не требует от механизмов хранения игнорировать дубликаты ключей. Механизм по-прежнему может проверять их и выдавать ошибки дублирования ключей, если он их обнаружит.

  • updatable_views_with_limit

    Формат командной строки --updatable-views-with-limit[={OFF|ON}]
    Системная переменная updatable_views_with_limit
    Область видимости Глобальная, сессии
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Булево
    Значение по умолчанию 1

    Эта переменная управляет тем, можно ли вносить обновления в представление, если представление не содержит все столбцы первичного ключа, определенного в базовой таблице, если оператор обновления содержит предложение LIMIT. (Такие обновления часто генерируются инструментами GUI.) Обновление — это оператор UPDATE или DELETE. Первичный ключ здесь означает PRIMARY KEY или индекс UNIQUE, в котором ни один столбец не может содержать NULL.

    Переменная может иметь два значения:

    • 1 или YES: Выдать только предупреждение (а не сообщение об ошибке). Это значение по умолчанию.

    • 0 или NO: Запретить обновление.

  • use_secondary_engine

    Системная переменная use_secondary_engine
    Область видимости Сессии
    Динамическая Да
    SET_VAR Подсказка применяется Да
    Тип Перечисление
    Значение по умолчанию ON
    Допустимые значения

    OFF

    ON

    FORCED

    Для будущего использования.

    Использовать ли для выполнения запросов дополнительный механизм.

    Для использования с HeatWave. См. Руководство пользователя HeatWave.

  • validate_password.xxx

    Компонент validate_password реализует набор системных переменных с именами в формате validate_password.xxx. Эти переменные влияют на тестирование паролей этим компонентом; см. Раздел 8.4.3.2, «Параметры и переменные проверки пароля».

  • version

    Номер версии сервера. Значение может также включать суффикс, указывающий на информацию о сборке или конфигурации сервера. -debug указывает на то, что сервер был собран с включенной поддержкой отладки.

  • version_comment

    Переменная системы version_comment
    Область Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Строка

    Программа конфигурации CMake имеет опцию COMPILATION_COMMENT_SERVER, которая позволяет указать комментарий при построении MySQL. Эта переменная содержит значение этого комментария.

  • version_compile_machine

    Переменная системы version_compile_machine
    Область Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Строка

    Тип серверного двоичного файла.

  • version_compile_os

    Переменная системы version_compile_os
    Область Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Строка

    Тип операционной системы, на которой был построен MySQL.

  • version_compile_zlib

    Переменная системы version_compile_zlib
    Область Глобальная
    Динамическая Нет
    SET_VAR Применяется подсказка Нет
    Тип Строка

    Версия скомпилированной библиотеки zlib.

  • wait_timeout

    Формат командной строки --wait-timeout=#
    Переменная системы wait_timeout
    Область Глобальная, Сессия
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 28800
    Минимальное значение 1
    Максимальное значение (Windows) 2147483
    Максимальное значение (Другие) 31536000
    Единица измерения секунды

    Количество секунд, которое сервер ожидает активности по неинтерактивному соединению перед его закрытием.

    При запуске потока значение сессии wait_timeout инициализируется из глобального значения wait_timeout или из глобального значения interactive_timeout в зависимости от типа клиента (как определено опцией соединения CLIENT_INTERACTIVE). См. также interactive_timeout.

  • warning_count

    Количество ошибок, предупреждений и заметок, которые были результатом последнего оператора, сгенерировавшего сообщения. Эта переменная только для чтения. См. Раздел 15.7.7.42, “SHOW WARNINGS Statement”.

  • windowing_use_high_precision

    Формат командной строки --windowing-use-high-precision[={OFF|ON}]
    Переменная системы windowing_use_high_precision
    Область Глобальная, Сессия
    Динамическая Да
    SET_VAR Применяется подсказка Да
    Тип Булево
    Значение по умолчанию ON

    Вычислять ли оконные операции без потери точности. См. Раздел 10.2.1.21, “Window Function Optimization”.

  • xa_detach_on_prepare

    Формат командной строки --xa-detach-on-prepare[={OFF|ON}]
    Переменная системы xa_detach_on_prepare
    Область Глобальная, Сессия
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    При установке в значение ON (включено), все XA-транзакции отсоединяются (отключаются) от подключения (сессии) как часть XA PREPARE. Это означает, что XA-транзакцию можно подтвердить или отменить другим подключением, даже если исходное подключение не завершено, и это подключение может начать новые транзакции.

    Временные таблицы нельзя использовать внутри отсоединенных XA-транзакций.

    Когда это значение OFF (выключено), XA-транзакция строго ассоциирована с тем же подключением до отключения сессии. Рекомендуется разрешить ее включение (по умолчанию) для репликации.

    Дополнительная информация в Разделе 15.3.8.2, “XA Transaction States”.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/server-system-variables.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API