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[={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=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Адрес с суффиксом
/использует пространство имен, названноеnsns.Система хоста должна поддерживать пространства имен сети, и каждое именованное пространство имен должно быть предварительно настроено. Указание несуществующего пространства имен приводит к ошибке.
Дополнительную информацию о пространствах имен сети см. в Разделе 7.1.14, «Поддержка пространств имен сети».
Если привязка к адресу завершается ошибкой, сервер выводит сообщение об ошибке и не запускается.
Системная переменная
admin_addressаналогична системной переменнойbind_address, которая связывает сервер с адресом для обычных клиентских соединений, но с этими отличиями:bind_addressразрешает несколько адресов.admin_addressразрешает один адрес.bind_addressразрешает адреса с подстановкой.admin_addressне разрешает.
-
Формат командной строки --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=file_nameСистемная переменная admin_ssl_caОбласть действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Имя файла Значение по умолчанию NULLСистемная переменная
admin_ssl_caподобнаssl_ca, за исключением того, что она применяется к административному интерфейсу подключения, а не к основному. Сведения о настройке поддержки шифрования для административного интерфейса см. в Разделе «Поддержка административного интерфейса для защищенных подключений».
-
Формат командной строки --admin-ssl-capath=dir_nameСистемная переменная admin_ssl_capathОбласть действия Глобальная Динамическая Да SET_VARПрименимоНет Тип Имя каталога Значение по умолчанию NULLСистемная переменная
admin_ssl_capathподобна переменнойssl_capath, за исключением того, что она применяется к интерфейсу административного подключения, а не к основному интерфейсу подключения. Сведения о настройке поддержки шифрования для административного интерфейса см. в разделе Поддержка шифрованных подключений административного интерфейса. -
Формат командной строки --admin-ssl-cert=file_nameСистемная переменная admin_ssl_certОбласть действия Глобальная Динамическая Да SET_VARПрименимоНет Тип Имя файла Значение по умолчанию NULLСистемная переменная
admin_ssl_certподобна переменнойssl_cert, за исключением того, что она применяется к интерфейсу административного подключения, а не к основному интерфейсу подключения. Сведения о настройке поддержки шифрования для административного интерфейса см. в разделе Поддержка шифрованных подключений административного интерфейса. -
Формат командной строки --admin-ssl-cipher=nameСистемная переменная admin_ssl_cipherОбласть действия Глобальная Динамическая Да SET_VARПрименимоНет Тип Строка Значение по умолчанию NULLСистемная переменная
admin_ssl_cipherподобна переменнойssl_cipher, за исключением того, что она применяется к интерфейсу административного подключения, а не к основному интерфейсу подключения. Сведения о настройке поддержки шифрования для административного интерфейса см. в разделе Поддержка шифрованных подключений административного интерфейса.В списке, задаваемом этой переменной, могут быть любые из следующих значений:
ECDHE-ECDSA-AES128-GCM-SHA256ECDHE-ECDSA-AES256-GCM-SHA384ECDHE-RSA-AES128-GCM-SHA256ECDHE-RSA-AES256-GCM-SHA384ECDHE-ECDSA-CHACHA20-POLY1305ECDHE-RSA-CHACHA20-POLY1305ECDHE-ECDSA-AES256-CCMECDHE-ECDSA-AES128-CCMDHE-RSA-AES128-GCM-SHA256DHE-RSA-AES256-GCM-SHA384DHE-RSA-AES256-CCMDHE-RSA-AES128-CCMDHE-RSA-CHACHA20-POLY1305
Попытка включить в список шифров значения, не указанные здесь, при настройке этой переменной приводит к ошибке ().
-
Формат командной строки --admin-ssl-crl=file_nameСистемная переменная admin_ssl_crlОбласть действия Глобальная Динамическая Да SET_VARПрименимоНет Тип Имя файла Значение по умолчанию NULLСистемная переменная
admin_ssl_crlподобна переменнойssl_crl, за исключением того, что она применяется к интерфейсу административного подключения, а не к основному интерфейсу подключения. Сведения о настройке поддержки шифрования для административного интерфейса см. в разделе Поддержка шифрованных подключений административного интерфейса.
-
Формат командной строки --admin-tls-ciphersuites=ciphersuite_listСистемная переменная admin_tls_ciphersuitesОбласть действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Строка Значение по умолчанию NULLСистемная переменная
admin_tls_ciphersuitesпохожа наtls_ciphersuites, за исключением того, что она применяется к интерфейсу административного подключения, а не к основному интерфейсу подключения. Сведения о настройке поддержки шифрования для административного интерфейса см. в Поддержке шифрованных подключений административного интерфейса.Значение представляет собой список нуля или более имён шифров, разделённых двоеточием, из тех, что перечислены здесь:
TLS_AES_128_GCM_SHA256TLS_AES_256_GCM_SHA384TLS_CHACHA20_POLY1305_SHA256TLS_AES_128_CCM_SHA256
Попытка включить в список шифров значения, которые здесь не показаны, при настройке этой переменной вызывает ошибку ().
-
Формат командной строки --admin-tls-version=protocol_listСистемная переменная admin_tls_versionОбласть действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Строка Значение по умолчанию TLSv1.2,TLSv1.3Системная переменная
admin_tls_versionпохожа наtls_version, за исключением того, что она применяется к интерфейсу административного подключения, а не к основному интерфейсу подключения. Сведения о настройке поддержки шифрования для административного интерфейса см. в Поддержке шифрованных подключений административного интерфейса.ВажноMySQL 9.2 не поддерживает протоколы подключения TLSv1 и TLSv1.1. Дополнительную информацию см. в ...
MuySQL 9.2 поддерживает протокол TLSv1.3, при условии, что сервер MySQL был скомпилирован с использованием OpenSSL 1.1.1 или более поздней версии. Сервер проверяет версию OpenSSL при запуске, и если она старше 1.1.1, TLSv1.3 удаляется из значения по умолчанию для системной переменной. В этом случае значением по умолчанию является
TLSv1.2.
-
authentication_openid_connect_configurationФормат командной строки --authentication_openid_connect_configurationСистемная переменная authentication_openid_connect_configurationОбласть действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Строка Определяет список издателей и соответствующих открытых ключей подписи, используемых для проверки подписи токена идентификации для Раздела 8.4.1.9, «Подключаемая аутентификация OpenID Connect». Принимает строку JSON с префиксом
JSON://или полный путь к файлу JSON с префиксомfile://.
-
Формат командной строки --authentication-policy=valueСистемная переменная authentication_policyОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Строка Значение по умолчанию *,,Эта переменная используется для администрирования возможностей многофакторной аутентификации (MFA). Для операторов
CREATE USERиALTER USER, используемых для управления определениями учетных записей MySQL, она определяет, какой(ие) фактор(ы) аутентификации могут быть указаны, где “фактор” соответствует методу или плагину аутентификации, связанному с учетной записью.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.5, «Плагинная аутентификация 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.5, «Windows Pluggable Authentication».Клиент, который выполняет аутентификацию с помощью функции
InitSecurityContext(), должен предоставить строку, идентифицирующую сервис, к которому он подключается (targetName). MySQL использует имя принципа (UPN) учётной записи, под которой работает сервер. UPN имеет види не требует регистрации для использования. Это UPN отправляется сервером в начале процесса рукопожатия аутентификации.user_id@computer_nameЭта переменная управляет отправкой сервером UPN в начальном запросе. По умолчанию переменная включена. По соображениям безопасности она может быть отключена, чтобы избежать отправки имени учётной записи сервера клиенту в открытом виде. Если переменная отключена, сервер всегда отправляет байт
0x00в первом запросе, клиент не указываетtargetName, и в результате используется аутентификация NTLM.Если сервер не может получить своё UPN (что происходит в основном в средах, не поддерживающих аутентификацию Kerberos), UPN не отправляется сервером, и используется аутентификация NTLM.
-
Формат командной строки --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, and ROLLBACK Statements».По умолчанию подключения клиентов начинаются с
autocommitравным 1. Чтобы клиенты начинали с значения по умолчанию 0, установите глобальное значениеautocommitпри запуске сервера с параметром--autocommit=0. Чтобы установить переменную с помощью файла настроек, добавьте эти строки:[mysqld] autocommit=0
-
Формат командной строки --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.Действие этой переменной одинаково в отношении JavaScript-библиотек и хранимых процедур; когда
automatic_sp_privilegesравно 1, привилегииEXECUTEиALTER ROUTINEавтоматически предоставляются создателю библиотеки, если у создателя этих привилегий ещё нет.См. также Раздел 27.2.2, «Хранимые процедуры и привилегии MySQL».
-
Формат командной строки --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Область действия Глобальная Динамическая Нет SET_VARПрименимо подсказкаНет Тип Целое число Значение по умолчанию -1(указывает на автоматическое изменение размера; не присваивайте это значение в явном виде)Минимальное значение 1Максимальное значение 65535Количество ожидающих запросов на подключение, которые может обработать MySQL. Это значение становится важным, когда основной поток MySQL получает очень большое количество запросов на подключение за очень короткий промежуток времени. Тогда основному потоку требуется некоторое время (хотя и очень небольшое), чтобы проверить подключение и запустить новый поток. Значение
back_logуказывает, сколько запросов можно накопить за это короткое время, прежде чем MySQL временно перестанет обрабатывать новые запросы. Увеличивать это значение необходимо только если ожидается большое количество подключений за короткий промежуток времени.Другими словами, это значение представляет размер очереди для входящих TCP/IP соединений. Ваша операционная система имеет собственный предел для размера этой очереди. Более подробная информация должна быть в руководстве по системному вызову Unix
listen(). Обратитесь к документации вашей ОС, чтобы узнать максимальное значение для этой переменной.back_logне может быть установлено выше предела, заданного вашей операционной системой.Значение по умолчанию равно значению
max_connections, что позволяет регулировать ожидаемую очередь в соответствии с максимальным количеством допустимых подключений. -
Формат командной строки --basedir=dir_nameСистемная переменная basedirОбласть действия Глобальная Динамическая Нет SET_VARПрименимо подсказкаНет Тип Имя каталога Значение по умолчанию parent of mysqld installation directoryПуть к основной директории установки MySQL.
-
Формат командной строки --big-tables[={OFF|ON}]Системная переменная big_tablesОбласть действия Глобальная, Сеанс Динамическая Да SET_VARПрименимо подсказкаНет Тип Булево Значение по умолчанию OFFПри включении сервер сохраняет все временные таблицы на диске вместо оперативной памяти. Это предотвращает большинство ошибок
The tableдля операцийtbl_nameis fullSELECT, требующих большой временной таблицы, но также замедляет запросы, для которых временные таблицы в оперативной памяти были бы достаточны.Значение по умолчанию для новых подключений —
OFF(использовать временные таблицы в памяти). Обычно необходимость в включении этой переменной не возникает. Когда временные внутренние таблицы в памяти управляются движком храненияTempTable(по умолчанию), и превышен максимальный объём памяти, который может занимать движок храненияTempTable, движок храненияTempTableначинает сохранять данные во временные файлы на диске. Когда временные таблицы в памяти управляются движком храненияMEMORY, таблицы в памяти автоматически преобразуются в таблицы на диске по мере необходимости. Дополнительная информация содержится в Разделе 10.4.4, «Использование внутренних временных таблиц в MySQL».
-
Формат командной строки --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Адрес с суффиксом
/использует пространство имён с именемnsns.Хостовая система должна поддерживать сетевые пространства имён, и каждое именованное пространство имён должно быть предварительно настроено. Указание несуществующего пространства имён приводит к ошибке.
Если значение переменной указывает несколько адресов, оно может включать адреса в глобальном пространстве имён, в именованных пространствах имён или их комбинацию.
Дополнительную информацию о сетевых пространствах имён см. в Разделе 7.1.14, “Поддержка сетевых пространств имён”.
Если привязка к любому адресу завершается ошибкой, сервер выдаёт ошибку и не запускается.
Примеры:
-
bind_address=*Сервер прослушивает все IPv4 или IPv6 адреса, как указано подстановкой символов
*. -
bind_address=198.51.100.20Сервер прослушивает только адрес
198.51.100.20IPv4. -
bind_address=198.51.100.20,2001:db8:0:f101::1Сервер прослушивает адрес
198.51.100.20IPv4 и адрес2001:db8:0:f101::1IPv6. -
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.20IPv4 в пространстве имёнred, адрес2001:db8:0:f101::1IPv6 в пространстве имёнblueи адрес192.0.2.50IPv4 в глобальном пространстве имён.
Когда
bind_addressназывает единственное значение (с подстановкой символов или без), сервер прослушивает на одном сокете, который для адреса с подстановкой символов может быть привязан к нескольким сетевым интерфейсам. Когдаbind_addressназывает список из нескольких значений, сервер прослушивает на одном сокете на каждое значение, при этом каждый сокет привязан к одному сетевому интерфейсу. Количество сокетов прямо пропорционально количеству указанных значений. В зависимости от эффективности приема подключений операционной системой, длинные списки значений могут привести к снижению производительности при приёме TCP/IP подключений.Поскольку для сокетов прослушивания и файлов сетевых пространств имён выделены дескрипторы файлов, может потребоваться увеличить системную переменную
open_files_limit.Если вы собираетесь привязать сервер к определённому адресу, убедитесь, что системная таблица
mysql.userсодержит учётную запись с административными привилегиями, которую можно использовать для подключения к этому адресу. В противном случае вы не сможете остановить сервер. Например, если вы привязываете сервер к*, вы можете подключиться к нему с использованием всех существующих учётных записей. Но если вы привязываете сервер к::1, он принимает подключения только по этому адресу. В этом случае, сначала убедитесь, что учётная запись'root'@'::1'присутствует в таблицеmysql.user, чтобы вы могли подключиться к серверу для его остановки. -
Формат командной строки --block-encryption-mode=#Системная переменная block_encryption_modeОбласть действия Глобальная, Сессия Динамическая Да SET_VARПрименяется ли подсказкаНет Тип Строка Значение по умолчанию aes-128-ecbЭта переменная управляет режимом шифрования блоков для блочных алгоритмов, таких как AES. Она влияет на шифрование для
AES_ENCRYPT()иAES_DECRYPT().block_encryption_modeпринимает значение в форматеaes-, гдеkeylen-modekeylen- длина ключа в битах, а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Область видимости Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Специфично для платформы Linux Это 160-битная
SHA1подпись, которая генерируется компоновщиком при компиляции сервера на системах Linux с-DWITH_BUILD_ID=ON(включена по умолчанию) и преобразуется в шестнадцатеричную строку. Это значение только для чтения служит уникальным идентификатором сборки и записывается в лог сервера при запуске.build_idне поддерживается на платформах, отличных от Linux. -
Формат командной строки --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.2, «SHA-256 подключаемая аутентификация» и Раздел 8.4.1.1, «Кэширование 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.1, «Кэширование 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.1, «Кэширование SHA-2 подключаемой аутентификации».
-
Системная переменная character_set_clientОбласть видимости Глобальная, сессии Динамическая Да SET_VARПодсказка применяетсяНет Тип Строка Значение по умолчанию utf8mb4Кодировка для запросов, поступающих от клиента. Значение этой переменной для сессии устанавливается с использованием кодировки, запрошенной клиентом при подключении к серверу. (Многие клиенты поддерживают опцию
--default-character-setдля явного указания кодировки. См. также Раздел 12.4, «Кодировки и сортировки соединений».) Глобальное значение переменной используется для установки значения сессии в случаях, когда запрашиваемое клиентом значение неизвестно или недоступно, или сервер настроен на игнорирование запросов клиента. Это может произойти, когда клиент запрашивает кодировку, неизвестную серверу, например, когда клиент с поддержкой японского языка запрашиваетsjisпри подключении к серверу, не настроенному с поддержкойsjis.Некоторые кодировки не могут использоваться в качестве кодировки клиента. Попытка использовать их в качестве значения
character_set_clientприводит к ошибке. См. Недопустимые кодировки клиента. -
Системная переменная character_set_connectionОбласть видимости Глобальная, сессии Динамическая Да SET_VARПодсказка применяетсяНет Тип Строка Значение по умолчанию utf8mb4Кодировка, используемая для литералов, указанных без указателя кодировки, и для преобразования числа в строку. Для получения информации о вводных данных см. Раздел 12.3.8, «Указатели кодировки».
-
Системная переменная 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=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Область видимости Глобальная, сессии Динамическая Да SET_VARПодсказка применяетсяНет Тип Строка Значение по умолчанию utf8mb4Кодировка, используемая для возврата результатов запроса клиенту. Это включает в себя данные результатов, такие как значения столбцов, метаданные результатов, такие как имена столбцов, и сообщения об ошибках.
-
Формат командной строки --character-set-server=nameСистемная переменная character_set_serverОбласть видимости Глобальная, сессии Динамическая Да SET_VARПодсказка применяетсяНет Тип Строка Значение по умолчанию utf8mb4Кодировка сервера по умолчанию. См. Раздел 12.15, «Настройка кодировки». Если вы устанавливаете эту переменную, вы также должны установить
collation_serverдля указания сортировки для кодировки. -
Системная переменная character_set_systemОбласть видимости Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Тип Строка Значение по умолчанию utf8mb3Кодировка, используемая сервером для хранения идентификаторов. Значение всегда равно
utf8mb3.
-
Формат командной строки --character-sets-dir=dir_nameСистемная переменная character_sets_dirОбласть действия Глобальная Динамическая Нет SET_VARПрименяется подсказкаНет Тип Имя каталога Каталог, в котором установлены наборы символов. См. Раздел 12.15, «Настройка наборов символов».
-
Формат командной строки --check-proxy-users[={OFF|ON}]Системная переменная check_proxy_usersОбласть действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Булево Значение по умолчанию OFFНекоторые плагины аутентификации реализуют отображение псевдопользователей для себя (например, плагины аутентификации PAM и Windows). Другие плагины аутентификации по умолчанию не поддерживают псевдопользователей. Из них некоторые могут запросить, чтобы сам сервер MySQL отображал псевдопользователей в соответствии с предоставленными привилегиями для псевдопользователей:
mysql_native_password(устарело),sha256_password(устарело).Если системная переменная
check_proxy_usersвключена, сервер выполняет отображение псевдопользователей для любых плагинов аутентификации, которые делают такой запрос. Чтобы воспользоваться поддержкой серверного отображения псевдопользователей для плагинаsha256_password, необходимо включитьsha256_password_proxy_users.Сведения об отображении пользователей см. в Разделе 8.2.19, «Псевдопользователи».
-
Системная переменная collation_connectionОбласть действия Глобальная, Сессия Динамическая Да SET_VARПрименяется подсказкаНет Тип Строка Сортировка набора символов соединения.
collation_connectionважна для сравнения строковых литералов. Для сравнения строк со значениями столбцовcollation_connectionне имеет значения, потому что столбцы имеют свою сортировку, которая имеет более высокую сортировочную приоритетность (см. Раздел 12.8.4, «Сортировка согласованности в выражениях»).Использование имени настроенной сортировки для этой переменной приводит к появлению предупреждения.
-
Системная переменная 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=nameСистемная переменная collation_serverОбласть действия Глобальная, Сессия Динамическая Да SET_VARПрименяется подсказкаНет Тип Строка Значение по умолчанию utf8mb4_0900_ai_ciСортировка по умолчанию сервера. См. Раздел 12.15, «Настройка наборов символов».
Установка значения, соответствующего имени настроенной сортировки, приводит к появлению предупреждения.
-
Формат командной строки --completion-type=#Системная переменная completion_typeОбласть действия Глобальная, сеанс Динамическая Да SET_VARПрименяется ли подсказкаНет Тип Перечисление Значение по умолчанию NO_CHAINДопустимые значения NO_CHAINCHAINRELEASE012Тип завершения транзакции. Эта переменная может принимать значения, показанные в следующей таблице. Переменная может быть задана с использованием либо имен значений, либо соответствующих целочисленных значений.
Значение Описание 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[=value]Системная переменная component_scheduler.enabledОбласть действия Глобальная Динамическая Да SET_VARПрименяется ли подсказкаНет Тип Булево Значение по умолчанию ONПри установке в
OFFпри запуске фоновый поток не запускается. Задачи по-прежнему можно планировать, но они не выполняются, покаcomponent_schedulerне будет включено. При установке вONпри запуске компонент полностью работоспособен.Также можно задавать значение динамически, чтобы получить следующие эффекты:
ONзапускает фоновый поток, который начинает обслуживать очередь немедленно.OFFсигнализирует о завершении фонового потока, который ожидает его окончания. Фоновый поток проверяет флаг завершения перед доступом к очереди, чтобы проверить наличие задач для выполнения.
-
Формат командной строки --concurrent-insert[=value]Системная переменная concurrent_insertОбласть действия Глобальная Динамическая Да SET_VARПрименяется ли подсказкаНет Тип Перечисление Значение по умолчанию AUTOДопустимые значения NEVERAUTOALWAYS012Если
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Область действия Глобальная Динамическая Да 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Область видимости Глобальная, сессии Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 8192Минимальное значение 0Максимальное значение 536870912Единица измерения байты Устанавливает размер фрагмента для обновлений счетчика глобального использования памяти
Global_connection_memory. Переменная состояния обновляется только тогда, когда общее потребление памяти всеми пользовательскими соединениями изменяется более чем на эту величину. Отключите обновления, установивconnection_memory_chunk_size = 0.Расчет памяти не включает память, используемую системными пользователями, такими как пользователь root MySQL. Память, используемая буферным пулом
InnoDB, также не включается.Для установки этой переменной необходимо иметь привилегию
SYSTEM_VARIABLES_ADMINилиSUPER. -
Формат командной строки --connection-memory-limit=#Системная переменная connection_memory_limitОбласть видимости Глобальная, сессии Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 18446744073709551615Минимальное значение 2097152Максимальное значение 18446744073709551615Единица измерения байты Устанавливает максимальный объем памяти, который может использоваться одним пользовательским соединением. Если любое пользовательское соединение использует больше этой величины, все запросы из этого соединения отклоняются, включая любые выполняющиеся в данный момент запросы.
Предел, установленный этой переменной, не применяется к системным пользователям или к учетной записи root MySQL. Память, используемая буферным пулом
InnoDB, также не включается.Для установки этой переменной необходимо иметь привилегию
SYSTEM_VARIABLES_ADMINилиSUPER. -
connection_memory_status_limitФормат командной строки --connection-memory-status-limit=#Системная переменная connection_memory_status_limitОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 18446744073709551615Минимальное значение 16777216Максимальное значение 18446744073709551615Единица измерения байты Это максимальный объем памяти, который может быть потреблен любым одним пользовательским соединением до того, как будет увеличен счетчик
Count_hit_query_past_connection_memory_status_limit. -
Системная переменная core_fileОбласть видимости Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Тип Логическое Значение по умолчанию OFFНеобходимо ли записывать файл дампа памяти, если сервер неожиданно завершает работу. Эта переменная устанавливается с помощью параметра
--core-file. -
Формат командной строки --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Область видимости Глобальная, сессии Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 1000Минимальное значение 0Максимальное значение 4294967295Максимальная глубина рекурсии для выражения общего табличного выражения (CTE). Сервер прекращает выполнение любого CTE, который рекурсивно вызывает себя более чем на указанное количество уровней. Для получения дополнительной информации см. Ограничение рекурсии выражений общих таблиц.
-
Формат командной строки --datadir=dir_nameСистемная переменная datadirОбласть видимости Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Тип Имя каталога Путь к каталогу данных сервера MySQL. Относительные пути разрешаются относительно текущего каталога. Если вы ожидаете, что сервер будет запускаться автоматически (то есть в контекстах, для которых вы не можете заранее знать текущий каталог), лучше всего указать значение
datadirкак абсолютный путь.
-
Формат командной строки --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».
-
Системная переменная debug_syncОбласть Сеанс Динамическая Да SET_VARПрименяется ли подсказкаНет Тип Строка Эта переменная является пользовательским интерфейсом для механизма Debug Sync. Использование Debug Sync требует, чтобы MySQL был сконфигурирован с опцией
-DWITH_DEBUG=ONCMake (см. Раздел 2.8.7, «Параметры конфигурации исходного кода MySQL»); в противном случае, эта системная переменная недоступна.Глобальное значение переменной только для чтения и указывает, включен ли механизм. По умолчанию, Debug Sync отключен, и значение
debug_syncравноOFF. Если сервер запускается с--debug-sync-timeout=, гдеNN— значение таймаута, большее 0, Debug Sync включён, и значениеdebug_syncравноON - current signal, за которым следует имя сигнала. ТакжеNстановится значением таймаута по умолчанию для отдельных точек синхронизации.Сеансовое значение может быть прочитано любым пользователем и имеет такое же значение, как глобальная переменная. Сеансовое значение может быть установлено для управления точками синхронизации.
Установка сеансового значения этой системной переменной — ограниченная операция. Пользователь сеанса должен иметь достаточные привилегии для установки ограниченных сеансовых переменных. См. Раздел 7.1.9.1, «Привилегии на системные переменные».
Для описания механизма Debug Sync и способов использования точек синхронизации, см. Документацию MySQL Server Doxygen.
-
Системная переменная default_collation_for_utf8mb4Область Глобальная, Сеанс Динамическая Да SET_VARПрименяется ли подсказкаНет Тип Перечисление Значение по умолчанию utf8mb4_0900_ai_ciДопустимые значения utf8mb4_0900_ai_ciutf8mb4_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используется в следующих операциях: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Область Глобальная Динамическая Да SET_VARПрименяется ли подсказкаНет Тип Целое число Значение по умолчанию 0Минимальное значение 0Максимальное значение 65535Единица измерения дни Эта переменная определяет глобальную политику автоматического истечения срока действия паролей. Значение по умолчанию
default_password_lifetimeравно 0, что отключает автоматическое истечение срока действия паролей. Если значениеdefault_password_lifetime— положительное целое числоN, оно указывает допустимый срок действия паролей; пароли должны меняться каждыеNдней.Глобальная политика истечения срока действия паролей может быть переопределена по желанию для отдельных учётных записей с помощью опции истечения срока действия паролей в операциях
CREATE USERиALTER USER. См. Раздел 8.2.15, «Управление паролями».
-
Формат командной строки --default-storage-engine=nameСистемная переменная default_storage_engineОбласть действия Глобальная, сеансовая Динамическая Да SET_VARПрименяется подсказкаНет Тип Перечисление Значение по умолчанию InnoDBБазовый движок хранения для таблиц. См. Главу 18, Альтернативные движки хранения. Эта переменная устанавливает движок хранения только для постоянных таблиц. Для установки движка хранения для
TEMPORARYтаблиц, установите системную переменнуюdefault_tmp_storage_engine.Чтобы узнать, какие движки хранения доступны и включены, используйте оператор
SHOW ENGINESили запросите таблицуINFORMATION_SCHEMAENGINES.Если вы отключите базовый движок хранения при запуске сервера, вы должны установить базовый движок как для постоянных, так и для
TEMPORARYтаблиц на другой движок, иначе сервер не запустится. -
Формат командной строки --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=nameСистемная переменная default_tmp_storage_engineОбласть действия Глобальная, сеансовая Динамическая Да SET_VARПрименяется подсказкаДа Тип Перечисление Значение по умолчанию InnoDBБазовый движок хранения для
TEMPORARYтаблиц (созданных с помощьюCREATE TEMPORARY TABLE). Для установки движка хранения для постоянных таблиц, установите системную переменнуюdefault_storage_engine. Также см. обсуждение этой переменной относительно возможных значений.Если вы отключите базовый движок хранения при запуске сервера, вы должны установить базовый движок как для постоянных, так и для
TEMPORARYтаблиц на другой движок, иначе сервер не запустится. -
Формат командной строки --default-week-format=#Системная переменная default_week_formatОбласть действия Глобальная, сеансовая Динамическая Да SET_VARПрименяется подсказкаНет Тип Целое число Значение по умолчанию 0Минимальное значение 0Максимальное значение 7Значение по умолчанию для использования в функции
WEEK(). См. Раздел 14.7, «Функции даты и времени». -
Формат командной строки --delay-key-write[={OFF|ON|ALL}]Системная переменная delay_key_writeОбласть действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Перечисление Значение по умолчанию ONДопустимые значения OFFONALLЭта переменная определяет, как использовать отложенные записи ключей. Она применяется только к
MyISAMтаблицам. Отложенные записи ключей приводят к тому, что буферы ключей не сбрасываются между записями. См. также Раздел 18.2.1, «Параметры запуска MyISAM».Эта переменная может принимать одно из следующих значений, чтобы повлиять на обработку
DELAY_KEY_WRITEпараметра таблицы, который может использоваться вCREATE TABLEоператорах.Вариант Описание OFFDELAY_KEY_WRITEигнорируется.ONMySQL учитывает любой 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Область действия Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 100Минимальное значение 1Максимальное значение (64-разрядные платформы) 18446744073709551615Максимальное значение (32-разрядные платформы) 4294967295Эта системная переменная устарела (поскольку
DELAYEDвставки не поддерживаются), и следует ожидать ее удаления в будущей версии. -
Формат командной строки --delayed-insert-timeout=#Устарела Да Системная переменная delayed_insert_timeoutОбласть действия Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 300Минимальное значение 1Максимальное значение 31536000Единица измерения секунды Эта системная переменная устарела (поскольку
DELAYEDвставки не поддерживаются), и следует ожидать ее удаления в будущей версии. -
Формат командной строки --delayed-queue-size=#Устарела Да Системная переменная delayed_queue_sizeОбласть действия Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 1000Минимальное значение 1Максимальное значение (64-разрядные платформы) 18446744073709551615Максимальное значение (32-разрядные платформы) 4294967295Эта системная переменная устарела (поскольку
DELAYEDвставки не поддерживаются), и следует ожидать ее удаления в будущей версии. -
Формат командной строки --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Область действия Глобальная, сеанс Динамическая Да 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[={OFF|ON}]Переменная системы end_markers_in_jsonОбласть действия Глобальная, сеанс Динамическая Да SET_VARПрименяется подсказкаДа Тип Булево Значение по умолчанию OFFДобавлять ли концевые маркеры в вывод оптимизатора в формате JSON. См. MySQL Internals: Переменная системы end_markers_in_json.
-
Формат командной строки --eq-range-index-dive-limit=#Переменная системы eq_range_index_dive_limitОбласть действия Глобальная, сеанс Динамическая Да SET_VARПрименяется подсказкаДа Тип Целое число Значение по умолчанию 200Минимальное значение 0Максимальное значение 4294967295Эта переменная указывает число диапазонов равенства в условии сравнения по равенству, при котором оптимизатор переключается с использования погружения в индекс на использование статистики индекса при оценке числа строк, удовлетворяющих условию. Она применяется к оценке выражений, имеющих один из этих эквивалентных форм, где оптимизатор использует не уникальный индекс для поиска значений
col_name:col_nameIN(val1, ...,valN)col_name=val1OR ... ORcol_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.
-
Количество ошибок, возникших в результате последнего оператора, сгенерировавшего сообщения. Эта переменная только для чтения. См. Раздел 15.7.7.19, «Оператор SHOW ERRORS».
-
Формат командной строки --event-scheduler[=value]Переменная системы event_schedulerОбласть действия Глобальная Динамическая Да SET_VARПрименимо к подсказкамНет Тип Перечисление Значение по умолчанию ONДопустимые значения ONOFFDISABLEDЭта переменная включает или выключает, и запускает или останавливает Планировщик событий. Возможные значения статуса —
ON,DISABLED, иDISABLED. Включение Планировщика событийOFFотличается от выключения Планировщика событий, которое требует установить статус вDISABLED. Эта переменная и её влияние на работу Планировщика событий рассматриваются более подробно в Разделе 27.5.2, «Настройка Планировщика событий» -
Формат командной строки --explain-format=formatПеременная системы explain_formatОбласть действия Глобальная, сеанс Динамическая Да SET_VARПрименимо к подсказкамНет Тип Перечисление Значение по умолчанию TRADITIONALДопустимые значения TRADITIONAL (DEFAULT)JSONTREEЭта переменная определяет формат вывода по умолчанию, используемый
EXPLAINв отсутствие опцииFORMATпри отображении плана выполнения запроса. Возможные значения и их влияние перечислены здесь:-
TRADITIONAL: Использование традиционного табличного вывода MySQL, как если быFORMAT=TRADITIONALбыло указано в качестве части оператораEXPLAIN. Это значение по умолчанию для переменной.DEFAULTтакже поддерживается как синоним дляTRADITIONALи имеет точно такой же эффект.ПримечаниеDEFAULTнельзя использовать в качестве части опцииFORMATоператораEXPLAIN. 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Область действия Глобальная, сеанс Динамическая Да SET_VARПрименимо к подсказкамНет Тип Целое число Значение по умолчанию 1Минимальное значение 1Максимальное значение 2Определяет версию формата вывода JSON, используемого операторами
EXPLAIN FORMAT=JSON. Установка этой переменной в значение1заставляет сервер использовать версию 1, которая является линейным форматом, используемым для вывода из таких операторов в более ранних версиях MySQL; это значение по умолчанию в MySQL 9.2. Установкаexplain_json_format_versionв2заставляет использовать формат версии 2; этот формат вывода JSON основан на путях доступа и предназначен для лучшей совместимости с будущими версиями оптимизатора MySQL. В MySQL 9.2 и более поздних версиях также включает версию формата JSON в своем выводе.Пример использования см. в Получение информации о плане выполнения.
-
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'может быть недействительным. Имейте в виду, что режим SQLTRADITIONALвключает строгий режим и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Область действия Сессия Динамический Нет SET_VARПрименимоНет Тип Строка Имя внешнего пользователя, используемое во время процесса аутентификации, заданное плагином, используемым для аутентификации клиента. При использовании родной (встроенной) аутентификации MySQL или если плагин не задаёт значение, эта переменная равна
NULL. См. Раздел 8.2.19, «Пользователи-прокси».
-
Формат командной строки --flush[={OFF|ON}]Системная переменная flushОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Булево Значение по умолчанию OFFЕсли
ON, сервер очищает (синхронизирует) все изменения на диске после каждого оператора SQL. Обычно MySQL выполняет запись всех изменений на диск только после каждого оператора SQL и позволяет операционной системе обрабатывать синхронизацию с диском. См. Раздел B.3.3.3, «Что делать, если MySQL постоянно аварийно завершает работу». Эта переменная устанавливается вON, если вы запускаете mysqld с помощью параметра--flush.ПримечаниеЕсли
flushвключен, значениеflush_timeне имеет значения, и измененияflush_timeне влияют на поведение очистки. -
Формат командной строки --flush-time=#Системная переменная flush_timeОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 0Минимальное значение 0Максимальное значение 31536000Единица измерения секунды Если это значение установлено в ненулевое значение, все таблицы закрываются каждые
flush_timeсекунд для освобождения ресурсов и синхронизации неочищенных данных на диске. Этот параметр лучше всего использовать только на системах с минимальными ресурсами.ПримечаниеЕсли
flushвключен, значениеflush_timeне имеет значения, и измененияflush_timeне влияют на поведение очистки. -
Системная переменная foreign_key_checksОбласть видимости Глобальная, сеанса Динамическая Да SET_VARПодсказка применяетсяДа Тип Булево Значение по умолчанию ONЕсли установлено значение 1 (по умолчанию), ограничения внешних ключей проверяются. Если установлено значение 0, ограничения внешних ключей игнорируются, за несколькими исключениями. При повторном создании удаленной таблицы возвращается ошибка, если определение таблицы не соответствует ограничениям внешних ключей, ссылающимся на таблицу. Аналогично, операция
ALTER TABLEвозвращает ошибку, если определение внешнего ключа сформировано неправильно. Для получения дополнительной информации см. Раздел 15.1.21.5, «Ограничения FOREIGN KEY».Установка этой переменной оказывает такое же влияние на таблицы
NDB, как и на таблицыInnoDB. Обычно вы оставляете этот параметр включенным во время нормальной работы, чтобы обеспечить принудительное выполнение. Отключение проверки внешних ключей может быть полезно для перезагрузки таблицInnoDBв порядке, отличном от требуемого их родительскими/дочерними отношениями. См. Раздел 15.1.21.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=nameСистемная переменная ft_boolean_syntaxОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Строка Значение по умолчанию + -><()~*:""&|Список операторов, поддерживаемых булевыми полнотекстовыми поисками, выполняемыми с помощью
IN BOOLEAN MODE. См. Раздел 14.9.2, «Булевы полнотекстовые поиски».Значение переменной по умолчанию —
'+ -><()~*:""&|'. Правила изменения значения следующие:Функция оператора определяется положением в строке.
Замещающее значение должно иметь 14 символов.
Каждый символ должен быть неалфавитно-цифровым символом ASCII.
Первый или второй символ должен быть пробелом.
Дубликаты не допускаются, за исключением операторов цитирования фраз в позициях 11 и 12. Эти два символа не обязательно должны быть одинаковыми, но это единственные два символа, которые могут быть одинаковыми.
Позиции 10, 13 и 14 (которые по умолчанию установлены в
:,&и|) зарезервированы для будущих расширений.
-
Формат командной строки --ft-max-word-len=#Системная переменная ft_max_word_lenОбласть видимости Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 84Минимальное значение 10Максимальное значение 84Максимальная длина слова, которое будет включено в индекс
MyISAMFULLTEXT.ПримечаниеИндексы
FULLTEXTдля таблицMyISAMдолжны быть перестроены после изменения этой переменной. ИспользуйтеREPAIR TABLE.tbl_nameQUICK
-
Формат командной строки --ft-min-word-len=#Системная переменная ft_min_word_lenОбласть видимости Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 4Минимальное значение 1Максимальное значение 82Минимальная длина слова, которое должно быть включено в индекс
MyISAMFULLTEXT.ПримечаниеИндексы
FULLTEXTна таблицахMyISAMдолжны быть перестроены после изменения этой переменной. ИспользуйтеREPAIR TABLE.tbl_nameQUICK -
Формат командной строки --ft-query-expansion-limit=#Системная переменная ft_query_expansion_limitОбласть видимости Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 20Минимальное значение 0Максимальное значение 1000Количество лучших совпадений, используемых для поиска по полному тексту, выполненного с использованием
WITH QUERY EXPANSION. -
Формат командной строки --ft-stopword-file=file_nameСистемная переменная ft_stopword_fileОбласть видимости Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Тип Имя файла Файл, из которого следует читать список стоп-слов для поиска по полному тексту в таблицах
MyISAM. Сервер ищет файл в каталоге данных, если не указано абсолютное имя пути для указания другого каталога. Используются все слова из файла; комментарии не учитываются. По умолчанию используется встроенный список стоп-слов (как определено в файлеstorage/myisam/ft_static.c). Установка этой переменной в пустую строку ('') отключает фильтрацию стоп-слов. См. также Раздел 14.9.4, «Стоп-слова полного текста».ПримечаниеИндексы
FULLTEXTна таблицахMyISAMдолжны быть перестроены после изменения этой переменной или содержимого файла стоп-слов. ИспользуйтеREPAIR TABLE.tbl_nameQUICK -
Формат командной строки --general-log[={OFF|ON}]Системная переменная general_logОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Булево Значение по умолчанию OFFВключен ли общий журнал запросов. Значение может быть 0 (или
OFF) для отключения журнала или 1 (илиON) для включения журнала. Назначение для вывода журнала управляется системной переменнойlog_output; если это значение равноNONE, записи журнала не записываются, даже если журнал включен. -
Формат командной строки --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_status_limitФормат командной строки --connection-memory-status-limit=#Системная переменная global_connection_memory_status_limitОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 18446744073709551615Минимальное значение 16777216Максимальное значение 18446744073709551615Единица измерения байты Это максимальное количество памяти, которое может быть использовано всеми пользовательскими соединениями, прежде чем будет увеличено значение
Count_hit_query_past_global_connection_memory_status_limit.
-
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Область действия Глобальная, сеансовая Динамическая Да Применяется подсказка SET_VARДа Тип Целое число Значение по умолчанию 1024Минимальное значение 4Максимальное значение (64-битные платформы) 18446744073709551615Максимальное значение (32-битные платформы) 4294967295Максимальная длина результата в байтах для функции
GROUP_CONCAT(). Значение по умолчанию равно 1024. -
YES, если сжатиеzlibдоступно серверу,NO— в противном случае. Если нет, функцииCOMPRESS()иUNCOMPRESS()использовать нельзя. -
YES, если mysqld поддерживает динамическую загрузку плагинов,NO— в противном случае. Если значение равноNO, вы не можете использовать такие параметры, как--plugin-loadдля загрузки плагинов при запуске сервера, или операторINSTALL PLUGINдля загрузки плагинов во время выполнения. -
YES, если сервер поддерживает пространственные типы данных,NO— в противном случае. -
YES, если функция профилирования операторов доступна,NO— в противном случае. При наличии, переменная системыprofilingуправляет включением или отключением этой возможности. См. Раздел 15.7.7.33, «Оператор SHOW PROFILES».Эта переменная устарела; ожидается, что она будет удалена в будущих версиях MySQL.
-
have_query_cacheустарела, всегда имеет значениеNO, и ожидается, что она будет удалена в будущих версиях MySQL. -
YES, если индексыRTREEдоступны,NO— в противном случае. (Используются для пространственных индексов в таблицахMyISAM.) -
Переменная системы have_statement_timeoutОбласть действия Глобальная Динамическая Нет Применяется подсказка SET_VARНет Тип Булево Доступна ли функция таймаута выполнения операторов (см. Подсказки оптимизатора для времени выполнения операторов). Значение может быть
NO, если фоновый поток, используемый этой функцией, не удалось инициализировать. -
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Область действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Целое число Значение по умолчанию -1(указывает автоматическое изменение размера; не присваивайте это значение)Минимальное значение 0Максимальное значение 65536Сервер MySQL поддерживает кеш хостов в оперативной памяти, содержащий информацию об имени хоста и IP-адресе клиента и используемый для избежания запросов к системе доменных имён (DNS); см. Раздел 7.1.12.3, «Запросы к DNS и кэшу хостов».
Переменная
host_cache_sizeуправляет размером кэша хостов, а также размером таблицы Performance Schemahost_cache, которая предоставляет содержимое кэша. Установкаhost_cache_sizeоказывает следующее влияние:Установка размера в 0 отключает кэш хостов. При отключённом кэше сервер выполняет запрос к DNS каждый раз при подключении клиента.
Изменение размера во время выполнения приводит к неявной операции сброса кэша хостов, очищает кэш хостов, обнуляет таблицу
host_cacheи разблокирует заблокированные хосты.
Значение по умолчанию автоматически устанавливается в 128, плюс 1 для значения
max_connectionsдо 500, плюс 1 за каждый приращение на 20 больше 500 в значенииmax_connections, ограниченное значением 2000. -
Системная переменная hostnameОбласть действия Глобальная Динамическая Нет SET_VARПрименяется подсказкаНет Тип Строка Сервер устанавливает значение этой переменной в имя хоста сервера при запуске. Максимальная длина составляет 255 символов.
-
Эта переменная является синонимом переменной
last_insert_id. Она существует для совместимости с другими базами данных. Вы можете прочитать её значение с помощьюSELECT @@identity, и установить её с помощьюSET identity. -
Формат командной строки --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=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илиALTER TABLEпри вставке значенияAUTO_INCREMENT. Это в основном используется с бинарным журналом. -
Формат командной строки --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Допустимые значения MEMORYTempTableДвигатель хранения для временных внутренних таблиц в памяти (см. Раздел 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Область действия Глобальная, Сеанс Динамическая Да 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 Server вниз до ближайшего меньшего кратного размера блока перед сохранением значения для переменной системы. Парсер допускает значения до максимального беззнакового целого значения для платформы (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». Информацию о Batched Key Access см. в Разделе 10.2.1.12, «Соединения Block Nested-Loop и Batched Key Access». Информацию о соединениях хеш-типов см. в Разделе 10.2.1.4, «Оптимизация соединения Hash Join».
-
Формат командной строки --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Область действия Глобальная Динамическая Да 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Область действия Глобальная Динамическая Да SET_VARПрименимо ли ограничениеНет Тип Целое число Значение по умолчанию 300Минимальное значение 100Максимальное значение (64-битные платформы) 18446744073709551516Максимальное значение (32-битные платформы) 4294967196Размер блока 100Это значение управляет понижением буферов из горячего подсписка кэша ключей в теплый подсписк. Более низкие значения приводят к более быстрому понижению. Минимальное значение — 100. Значение по умолчанию — 300. См. Раздел 10.10.2, «Кэш ключей MyISAM».
-
Формат командной строки --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Область действия Глобальная Динамическая Да SET_VARПрименимо ли ограничениеНет Тип Целое число Значение по умолчанию 100Минимальное значение 1Максимальное значение 100Точка разделения между горячим и теплым подсписками списка буфера кэша ключей. Значение представляет собой процент списка буфера, используемого для теплого подсписка. Допустимые значения находятся в диапазоне от 1 до 100. Значение по умолчанию — 100. См. Раздел 10.10.2, «Кэш ключей MyISAM».
-
Системная переменная large_files_supportОбласть видимости Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Тип Булево Была ли mysqld скомпилирована с опциями для поддержки больших файлов.
-
Формат командной строки --large-pages[={OFF|ON}]Системная переменная large_pagesОбласть видимости Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Специфично для платформы Linux Тип Булево Значение по умолчанию OFFВключена ли поддержка больших страниц (через опцию
--large-pages). См. Раздел 10.12.3.3, «Включение поддержки больших страниц». -
Системная переменная large_page_sizeОбласть видимости Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 0Минимальное значение 0Максимальное значение 65535Единица измерения байты Если включена поддержка больших страниц, это показывает размер страниц памяти. Большие страницы памяти поддерживаются только в Linux; на других платформах значение этой переменной всегда равно 0. См. Раздел 10.12.3.3, «Включение поддержки больших страниц».
-
Значение, которое будет возвращено из
LAST_INSERT_ID(). Это хранится в бинарном журнале, когда вы используетеLAST_INSERT_ID()в операторе, который обновляет таблицу. Установка этой переменной не обновляет значение, возвращаемое функцией C API. -
Формат командной строки --lc-messages=nameСистемная переменная lc_messagesОбласть видимости Глобальная, Сессии Динамическая Да SET_VARПодсказка применяетсяНет Тип Строка Значение по умолчанию en_USЛокаль, используемая для сообщений об ошибках. Значение по умолчанию —
en_US. Сервер преобразует аргумент в имя языка и объединяет его со значениемlc_messages_dirдля определения местоположения файла сообщений об ошибках. См. Раздел 12.12, «Установка языка сообщений об ошибках». -
Формат командной строки --lc-messages-dir=dir_nameСистемная переменная lc_messages_dirОбласть видимости Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Тип Имя каталога Каталог, в котором расположены сообщения об ошибках. Сервер использует это значение вместе со значением
lc_messagesдля определения местоположения файла сообщений об ошибках. См. Раздел 12.12, «Установка языка сообщений об ошибках». -
Формат командной строки --lc-time-names=valueСистемная переменная lc_time_namesОбласть видимости Глобальная, Сессии Динамическая Да SET_VARПодсказка применяетсяНет Тип Строка Эта переменная указывает локаль, которая управляет языком, используемым для отображения названий и сокращений дней и месяцев. Эта переменная влияет на вывод функций
DATE_FORMAT(),DAYNAME()иMONTHNAME(). Имена локалей — это значения в стиле POSIX, такие как'ja_JP'или'pt_BR'. Значение по умолчанию —'en_US'независимо от настроек локали вашей системы. Для получения дополнительной информации см. Раздел 12.16, «Поддержка локали сервера MySQL». -
Системная переменная licenseОбласть видимости Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Тип Строка Значение по умолчанию GPLТип лицензии сервера.
-
Формат командной строки --local-infile[={OFF|ON}]Системная переменная local_infileОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Булево Значение по умолчанию OFFЭта переменная управляет возможностью загрузки локальных файлов на стороне сервера для операторов
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Область видимости Глобальная, сессии Динамическая Да 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Область видимости Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Тип Булево Значение по умолчанию OFF -
Формат командной строки --log-error[=file_name]Системная переменная log_errorОбласть видимости Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Тип Имя файла Целевой файл журнала ошибок по умолчанию. Если целевым объектом является консоль, значение равно
stderr. В противном случае целевым объектом является файл, и значениеlog_errorявляется именем файла. См. Раздел 7.4.2, «Журнал ошибок». -
Формат командной строки --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=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Область видимости Глобальная Динамическая Да 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 ERROR2 ERROR,WARNING3 ERROR,WARNING,INFORMATIONСуществует также приоритет
SYSTEM. Системные сообщения о некритичных ситуациях выводятся в журнал ошибок независимо от значенияlog_error_verbosity. Эти сообщения включают сообщения о запуске и завершении работы, а также некоторые значительные изменения настроек.Влияние
log_error_verbosityсочетается с влияниемlog_error_suppression_list. Для получения дополнительной информации см. Раздел 7.4.2.5, «Фильтрация журнала ошибок на основе приоритета (log_filter_internal)». -
Формат командной строки --log-output=nameСистемная переменная log_outputОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Множество Значение по умолчанию FILEДопустимые значения TABLEFILENONEНазначение или назначения для вывода общего журнала запросов и журнала медленных запросов. Значение представляет собой список из одного или нескольких слов, разделённых запятыми, выбранных из
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[={OFF|ON}]Системная переменная log_queries_not_using_indexesОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Булево Значение по умолчанию OFFЕсли включить эту переменную при включённом журнале медленных запросов, будут регистрироваться запросы, которые, как ожидается, извлекут все строки. См. Раздел 7.4.5, «Журнал медленных запросов». Этот параметр не обязательно означает, что индекс не используется. Например, запрос, использующий полное сканирование индекса, использует индекс, но будет зарегистрирован, поскольку индекс не будет ограничивать количество строк.
-
Формат командной строки --log-raw[={OFF|ON}]Системная переменная log_rawОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Булево Значение по умолчанию OFFСистемная переменная
log_rawизначально устанавливается в значение параметра--log-raw. См. описание этого параметра для получения дополнительной информации. Системная переменная также может быть установлена во время выполнения для изменения поведения маскировки паролей. -
Формат командной строки --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[={OFF|ON}]Системная переменная log_slow_extraОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Булево Значение по умолчанию OFFЕсли включён журнал медленных запросов и место назначения вывода включает
FILE, сервер записывает дополнительные поля в строки файла журнала, которые предоставляют информацию о медленных операторах. См. Раздел 7.4.5, «Журнал медленных запросов». ВыводTABLEне изменяется.
-
Формат командной строки --log-timestamps=#Переменная системы log_timestampsОбласть Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Перечисление Значение по умолчанию UTCДопустимые значения UTCSYSTEMЭта переменная управляет часовым поясом метки времени в сообщениях, записываемых в журнал ошибок, а также в сообщениях журнала запросов и журнала медленных запросов, записанных в файлы. Она не влияет на часовой пояс общих сообщений журнала запросов и журнала медленных запросов, записанных в таблицы (
mysql.general_log,mysql.slow_log). Строки, извлеченные из этих таблиц, можно преобразовать из локального часового пояса системы в любой желаемый часовой пояс с помощьюCONVERT_TZ()или путем установки системной переменной сеансаtime_zone.Разрешенные значения
log_timestamps— этоUTC(значение по умолчанию) иSYSTEM(локальный часовой пояс системы).Метки времени записываются в формате ISO 8601/RFC 3339:
плюс хвостовое значениеYYYY-MM-DDThh:mm:ss.uuuuuuZ, обозначающее время по Гринвичу (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Область Глобальная, сеанс Динамическая Да SET_VARПрименяется подсказкаНет Тип Числовой Значение по умолчанию 10Минимальное значение 0Максимальное значение 31536000Единица измерения секунды Если запрос занимает больше этого количества секунд, сервер увеличивает значение переменной состояния
Slow_queries. Если журнал медленных запросов включен, запрос записывается в файл журнала медленных запросов. Это значение измеряется в реальном времени, а не во времени выполнения CPU, поэтому запрос, находящийся ниже порога на слабо загруженной системе, может оказаться выше порога на сильно загруженной. Минимальное и значение по умолчанию дляlong_query_timeсоставляют 0 и 10 соответственно. Максимальное значение равно 31536000, что соответствует 365 дням в секундах. Значение можно указывать с точностью до микросекунд. См. раздел 7.4.5, «Журнал медленных запросов».Меньшие значения этой переменной приводят к тому, что больше заявлений рассматриваются как длительные, что приводит к тому, что больше места требуется для журнала медленных запросов. Для очень малых значений (менее одной секунды) журнал может быстро увеличиваться в объеме. Увеличение количества заявлений, рассматриваемых как длительные, также может привести к ложным срабатываниям для предупреждения «Избыточное число длительных процессов» в MySQL Enterprise Monitor, особенно если включена репликация Group Replication. По этим причинам очень маленькие значения следует использовать только в тестовых средах или в производственных средах только в течение короткого периода времени.
mysqldump выполняет полный сканирование таблиц, что означает, что его запросы часто превышают значение
long_query_time, которое полезно для обычных запросов. Если вы хотите исключить большинство или все запросы, сгенерированные mysqldump из журнала медленных запросов, вы можете использовать--mysqld-long-query-time, чтобы изменить значение переменной сеанса на более высокое. -
Формат командной строки --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Область Глобальная Динамическая Нет SET_VARПрименяется подсказкаНет Тип Булево Эта переменная описывает чувствительность к регистру имен файлов в файловой системе, где находится каталог данных.
OFFозначает, что имена файлов чувствительны к регистру, аON— что нет. Эта переменная является только для чтения, так как отражает атрибут файловой системы, и ее изменение не повлияет на файловую систему.
-
Формат командной строки --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_nametbl_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=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.23 «Оператор SHOW GRANTS».
-
Командная строка --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Область действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Целое число Значение по умолчанию 100Минимальное значение 1Максимальное значение (64-битные платформы) 18446744073709551615Максимальное значение (32-битные платформы) 4294967295После
max_connect_errorsпоследовательных запросов на подключение с одного хоста, прерванных без успешного подключения, сервер блокирует этот хост от дальнейших подключений. Если подключение с хоста установлено успешно в течение менее чемmax_connect_errorsпопыток после предыдущего прерванного подключения, счётчик ошибок для хоста сбрасывается до нуля. Для разблокировки заблокированных хостов очистите кэш хостов; см. Очистка кэша хостов. -
Командная строка --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Область действия Глобальная, сессионная Динамическая Да SET_VARПрименяется подсказкаНет Тип Целое число Значение по умолчанию 20Минимальное значение 0Максимальное значение 16384Эта системная переменная устарела (потому что
DELAYEDвставки не поддерживаются) и может быть удалена в будущих версиях MySQL.Установка сессионного значения этой системной переменной является ограниченной операцией. Пользователь сессии должен иметь права, достаточные для установки ограниченных сессионных переменных. См. Раздел 7.1.9.1, «Права на системные переменные».
-
Формат командной строки --max-digest-length=#Системная переменная max_digest_lengthОбласть действия Глобальная Динамическая Нет SET_VARПрименяется подсказкаНет Тип Целое число Значение по умолчанию 1024Минимальное значение 0Максимальное значение 1048576Единица измерения байты Максимальное количество байтов памяти, резервируемых на сессию для вычисления нормализованных дайджестов операторов. После использования этого объёма пространства во время вычисления дайджеста происходит усечение: дальнейшие токены из обработанного оператора не собираются и не учитываются в его значении дайджеста. Операторы, которые различаются только после указанного количества байтов обработанных токенов, создают одинаковый нормализованный дайджест оператора и считаются идентичными, если сравниваются или агрегируются для статистики дайджестов.
Длина, используемая для вычисления нормализованного дайджеста оператора, представляет собой сумму длины нормализованного дайджеста и длины дайджеста оператора. Поскольку длина дайджеста оператора всегда составляет 64, это эквивалентно
LENGTH(STATEMENT_DIGEST_TEXT(. Это означает, что при значенииstatement) ) + 64max_digest_lengthравном 1024 (значение по умолчанию), максимальная длина нормализованного SQL-оператора перед усечением составляет фактически 960 байтов.ПредупреждениеУстановка
max_digest_lengthв ноль отключает создание дайджестов, что также отключает функциональность сервера, требующую дайджестов, такую как брандмауэр MySQL Enterprise Firewall.Уменьшение значения
max_digest_lengthуменьшает использование памяти, но приводит к тому, что значения дайджеста большего количества операторов становятся неразличимыми, если они отличаются только в конце. Увеличение значения позволяет различать более длинные операторы, но увеличивает использование памяти, особенно для рабочих нагрузок, включающих большое количество одновременных сессий (сервер выделяетmax_digest_lengthбайт на сессию).Парсер использует эту системную переменную в качестве ограничения на максимальную длину нормализованных дайджестов операторов, которые он вычисляет. Если Performance Schema отслеживает дайджесты операторов, он создаёт копию значения дайджеста, используя системную переменную
performance_schema_max_digest_lengthв качестве ограничения на максимальную длину хранимых дайджестов. Следовательно, еслиperformance_schema_max_digest_lengthменьшеmax_digest_length, значения дайджестов, хранящиеся в Performance Schema, усекаются относительно исходных значений дайджестов.Дополнительную информацию о дайджестах операторов см. в Разделе 29.10, «Дайджесты операторов Performance Schema и выборка».
-
Формат командной строки --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Область действия Глобальная, сессионная Динамическая Да 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Область видимости Глобальная, сеанса Динамическая Да 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» иCount_hit_tmp_table_size.max_heap_table_sizeне реплицируется. См. Раздел 19.5.1.22, «Репликация и таблицы MEMORY», и Раздел 19.5.1.40, «Репликация и переменные» для получения дополнительной информации. -
Устарело Да Системная переменная max_insert_delayed_threadsОбласть видимости Глобальная, сеанса Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 0Минимальное значение 20Максимальное значение 16384Эта переменная является синонимом для
max_delayed_threads. Как иmax_delayed_threads, она устарела (поскольку вставкиDELAYEDне поддерживаются) и может быть удалена в будущих выпусках MySQL.Установка значения сеанса этой системной переменной является ограниченной операцией. Пользователь сеанса должен иметь права, достаточные для установки ограниченных переменных сеанса. См. Раздел 7.1.9.1, «Права на системные переменные».
-
Формат командной строки --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Область видимости Глобальная, сеанса Динамическая Да SET_VARПодсказка применяетсяДа Тип Целое число Значение по умолчанию 4096Минимальное значение 4Максимальное значение 8388608Единица измерения байты Эта переменная устарела и не оказывает никакого влияния в MySQL 9.2.
-
Формат командной строки --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Область видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 16382Минимальное значение 0Максимальное значение 4194304Эта переменная ограничивает общее количество подготовленных операторов на сервере. Она может использоваться в средах, где существует потенциальная угроза атак типа «отказ в обслуживании», основанных на исчерпании памяти сервера путем подготовки огромного количества операторов. Если значение установлено ниже текущего количества подготовленных операторов, существующие операторы не затрагиваются и могут использоваться, но новые операторы не могут быть подготовлены, пока текущее количество не упадет ниже предела. Установка значения 0 отключает подготовленные операторы.
-
Формат командной строки --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.24, «Выполнение запроса SHOW INDEX»). Установив это значение в низкое (скажем, 100), вы можете заставить MySQL отдавать предпочтение индексам вместо сканирования таблицы.
-
Формат командной строки --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» -
Формат командной строки --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Область действия Глобальная, сеанс Динамическая Да SET_VARПрименяется подсказкаНет Тип Целое число Значение по умолчанию 0Минимальное значение 0Максимальное значение 4294967295Максимальное количество одновременных подключений, разрешенных для любого пользователя MySQL. Значение 0 (по умолчанию) означает «без ограничений».
Эта переменная имеет глобальное значение, которое может быть установлено при запуске или во время работы сервера. Она также имеет доступное для чтения сеансовое значение, которое указывает на эффективное ограничение одновременных подключений, применимое к учетной записи, связанной с текущим сеансом. Сеансовое значение инициализируется следующим образом:
Если для учетной записи пользователя есть ненулевое ограничение ресурса, сеансовое значение
max_user_connectionsустанавливается на это ограничение.В противном случае сеансовое значение
max_user_connectionsустанавливается на глобальное значение.
Ограничения ресурсов учетной записи задаются с помощью
CREATE USERилиALTER USERоператора. См. Раздел 8.2.21, «Установка ограничений ресурсов учетной записи». -
Формат командной строки --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=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Область видимости Глобальная, Сессия Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 0Минимальное значение 0Максимальное значение (64-битные платформы) 18446744073709551615Максимальное значение (32-битные платформы) 4294967295Запросы, которые просматривают меньше этого количества строк, не регистрируются в журнале медленных запросов.
Установка сессионного значения этой системной переменной является ограниченной операцией. Пользователь сессии должен иметь права, достаточные для установки ограниченных сессионных переменных. См. Раздел 7.1.9.1, «Привилегии системных переменных».
-
Формат командной строки --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Область видимости Глобальная Динамическая Да 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Область видимости Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию (64-битные платформы) 18446744073709551615Значение по умолчанию (32-битные платформы) 4294967295Минимальное значение 7Максимальное значение (64-битные платформы) 18446744073709551615Максимальное значение (32-битные платформы) 4294967295Единица измерения байты Максимальный объем памяти для использования при отображении в памяти сжатых файлов
MyISAM. Если используется много сжатых таблицMyISAM, значение может быть уменьшено, чтобы снизить вероятность проблем с подкачкой памяти.
-
Формат командной строки --myisam-recover-options[=list]Системная переменная myisam_recover_optionsОбласть действия Глобальная Динамическая Нет SET_VARПрименяется ли подсказкаНет Тип Перечисление Значение по умолчанию OFFДопустимые значения OFFDEFAULTBACKUPFORCEQUICKУстановите режим восстановления хранилища
MyISAM. Значение переменной — любая комбинация значенийOFF,DEFAULT,BACKUP,FORCEилиQUICK. Если вы указываете несколько значений, разделяйте их запятыми. Указание переменной без значения при запуске сервера равносильно указаниюDEFAULT, а указание явного значения""отключает восстановление (то же, что и значениеOFF). Если восстановление включено, каждый раз, когда mysqld открывает таблицуMyISAM, проверяется, помечена ли таблица как аварийно завершившая работу или не была закрыта должным образом. (Последний вариант работает только в случае отключения внешней блокировки.) В этом случае mysqld выполняет проверку таблицы. Если таблица повреждена, mysqld пытается её восстановить.Следующие параметры влияют на работу восстановления.
Параметр Описание OFFВосстановление отключено. DEFAULTВосстановление без резервной копии, принуждения или быстрой проверки. BACKUPЕсли файл данных был изменён во время восстановления, сохранить резервную копию файла как файлtbl_name.MYD.tbl_name-datetime.BAKFORCEВыполнить восстановление, даже если при этом будет потеряно более одной строки из файла .MYD.QUICKНе проверять строки в таблице, если нет блоков удаления. Прежде чем сервер автоматически восстановит таблицу, он запишет заметку о восстановлении в журнал ошибок. Если вы хотите иметь возможность восстанавливаться от большинства проблем без вмешательства пользователя, следует использовать параметры
BACKUP,FORCE. Это принудительно выполняет восстановление таблицы, даже если некоторые строки будут удалены, но сохраняет старый файл данных как резервную копию, чтобы вы могли позже изучить, что произошло. -
Формат командной строки --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=nameСистемная переменная myisam_stats_methodОбласть действия Глобальная, сеанс Динамическая Да SET_VARПрименяется ли подсказкаНет Тип Перечисление Значение по умолчанию nulls_unequalДопустимые значения nulls_unequalnulls_equalnulls_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[={OFF|ON}]Системная переменная myisam_use_mmapОбласть действия Глобальная Динамическая Да SET_VARПрименяется ли подсказкаНет Тип Булево Значение по умолчанию OFFИспользовать сопоставление с памятью для чтения и записи таблиц
MyISAM. -
Формат командной строки --named-pipe[={OFF|ON}]Системная переменная named_pipeОбласть действия Глобальная Динамическая Нет SET_VARПрименяется ли подсказкаНет Зависит от платформы Windows Тип Булево Значение по умолчанию OFF(Только Windows.) Указывает, поддерживает ли сервер подключения через именованные каналы.
-
Формат командной строки --named-pipe-full-access-group=valueСистемная переменная named_pipe_full_access_groupОбласть видимости Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Специфичная для платформы Windows Тип Строка Значение по умолчанию empty stringДопустимые значения empty stringvalid Windows local group name*everyone*(Только Windows.) Контроль доступа, предоставляемый клиентам именованного канала, созданного сервером MySQL, устанавливается на минимально необходимый для успешного взаимодействия, когда системная переменная
named_pipeвключена для поддержки соединений через именованные каналы. Некоторые программы-клиенты MySQL могут открывать соединения через именованные каналы без дополнительной конфигурации; однако, другим программам-клиентам может потребоваться полный доступ для открытия соединения через именованный канал.Эта переменная устанавливает имя локальной группы Windows, члены которой получают от сервера MySQL достаточный доступ для использования клиентов именованных каналов. Значение по умолчанию — пустая строка, что означает, что ни одному пользователю Windows не предоставляется полный доступ к именованному каналу.
Новое имя локальной группы Windows (например,
mysql_access_client_users) можно создать в Windows, а затем использовать для замены значения по умолчанию, когда доступ абсолютно необходим. В этом случае ограничьте членство в группе как можно меньшим числом пользователей, удаляя пользователей из группы при обновлении их программного обеспечения клиента. Пользователю, не являющемуся членом группы, который пытается открыть соединение с MySQL с помощью затронутого клиента именованного канала, будет отказано в доступе, пока администратор Windows не добавит пользователя в группу. Недавно добавленным пользователям необходимо выйти из системы и снова войти, чтобы присоединиться к группе (требуется Windows).Установка значения в
'*everyone*'обеспечивает независимый от языка способ ссылки на группу «Все» в Windows. Группа «Все» по умолчанию не является безопасной. -
Формат командной строки --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Область видимости Глобальная, Сессия Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 30Минимальное значение 1Максимальное значение 31536000Единица измерения секунды Количество секунд ожидания дополнительных данных от соединения перед прерыванием чтения. Когда сервер читает данные от клиента,
net_read_timeout— это значение тайм-аута, определяющее, когда следует прервать чтение. Когда сервер записывает данные клиенту,net_write_timeout— это значение тайм-аута, определяющее, когда следует прервать запись. См. такжеreplica_net_timeout. -
Формат командной строки --net-retry-count=#Системная переменная net_retry_countОбласть видимости Глобальная, Сессия Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 10Минимальное значение 1Максимальное значение (64-битные платформы) 18446744073709551615Максимальное значение (32-битные платформы) 4294967295Если чтение или запись в коммуникационном порту прерваны, повторите попытку столько раз, прежде чем сдаться. Это значение должно быть достаточно большим на FreeBSD, поскольку внутренние прерывания отправляются всем потокам.
-
Формат командной строки --net-write-timeout=#Системная переменная net_write_timeoutОбласть видимости Глобальная, Сессия Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 60Минимальное значение 1Максимальное значение 31536000Единица измерения секунды Количество секунд ожидания записи блока в соединение перед прерыванием записи. См. также
net_read_timeout. -
Формат командной строки --ngram-token-size=#Системная переменная ngram_token_sizeОбласть видимости Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 2Минимальное значение 1Максимальное значение 10Определяет размер токена n-грамм для анализатора полнотекстового поиска n-грамм. Параметр
ngram_token_sizeявляется доступным только для чтения и может быть изменён только при запуске. Значение по умолчанию равно 2 (биграмма). Максимальное значение — 10.Для получения дополнительной информации о настройке этой переменной см. Раздел 14.9.8, «ngram Full-Text Parser».
-
Формат командной строки --offline-mode[={OFF|ON}]Системная переменная offline_modeОбласть действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Булево Значение по умолчанию OFFВ режиме офлайн MySQL-инстанс отключает клиентов, если у них нет соответствующих привилегий, и не позволяет им устанавливать новые подключения. Клиенты, которым доступ закрыт, получают ошибку. Точное сообщение об ошибке определяется следующим образом:
-
Сервер пытается получить значение атрибута с именем
reason, прикрепленного кoffline_mode; это эквивалентно результату запроса, подобного этому:SELECT ATTR_VALUE INTO
@sreasonFROM performance_schema.global_variable_attributes WHERE VARIABLE_NAME='offline_mode' AND ATTR_NAME='reason'; -
Если
@sreasonнеNULL, сервер пытается получить время последнего изменения системной переменнойoffline_mode; это эквивалентно следующему запросу:SELECT SET_TIME INTO
@stimeFROM performance.schema_variables_info WHERE VARIABLE_NAME='offline_mode';-
Если
@stimeнеNULL, сервер генерирует ошибку и выводит следующее сообщение:The server is currently in offline mode since
@stime, reason:@sreason Если
@stimeравноNULL, сервер генерирует ошибку и выводит сообщение Сервер в настоящее время в режиме офлайн.
-
-
Если
@sreasonпустое, сервер получает время последнего измененияoffline_modeи имя пользователя, который его изменил; это эквивалентно запросу, показанному здесь:SELECT SET_TIME, SET_USER INTO
@stime,@suserFROM performance.schema_variables_info WHERE VARIABLE_NAME='offline_mode';-
Если ни
@stime, ни@suserнеNULL, сервер генерирует ошибкуER_SERVER_OFFLINE_MODE_USERи выводит показанное здесь сообщение об ошибке:The server is currently in offline mode since
@stime, set by user@suser Если
@suserили@stime, или оба, равныNULL, сервер генерирует ошибку и выводит текст сообщения об ошибке, показанный ранее.
-
Дополнительную информацию о таблицах Performance Schema, используемых здесь, см. в разделе 29.12.14.1, «Таблица Performance Schema global_variable_attributes» и разделе 29.12.14.3, «Таблица Performance Schema variables_info».
Чтобы перевести сервер в режим офлайн, измените значение системной переменной
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[={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Область видимости Глобальная Динамическая Нет 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Область видимости Глобальная, сеанса Динамическая Да SET_VARПодсказка применяетсяДа Тип Целое число Значение по умолчанию 1Минимальное значение 0Максимальное значение 1Управляет эвристикой, применяемой во время оптимизации запросов для удаления менее перспективных частичных планов из пространства поиска оптимизатора. Значение 0 отключает эвристику, так что оптимизатор выполняет полный поиск. Значение 1 заставляет оптимизатор удалять планы на основе количества строк, извлекаемых промежуточными планами.
-
Формат командной строки --optimizer-search-depth=#Системная переменная optimizer_search_depthОбласть видимости Глобальная, сеанса Динамическая Да SET_VARПодсказка применяетсяДа Тип Целое число Значение по умолчанию 62Минимальное значение 0Максимальное значение 62Максимальная глубина поиска, выполняемого оптимизатором запросов. Значения, большие, чем количество отношений в запросе, приводят к лучшим планам запросов, но требуют больше времени для генерации плана выполнения запроса. Значения, меньшие, чем количество отношений в запросе, возвращают план выполнения быстрее, но полученный план может быть далек от оптимального. Если установлено значение 0, система автоматически выбирает разумное значение.
-
Формат командной строки --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=valueСистемная переменная optimizer_traceОбласть видимости Глобальная, сеанса Динамическая Да SET_VARПодсказка применяетсяНет Тип Строка Эта переменная управляет трассировкой оптимизатора. Для получения подробной информации см. Раздел 10.15, «Трассировка оптимизатора».
-
Формат командной строки --optimizer-trace-features=valueПеременная системы optimizer_trace_featuresОбласть действия Глобальная, Сеанс Динамическая Да SET_VARПрименяется подсказкаНет Тип Строка Эта переменная включает или отключает выбранные функции отслеживания оптимизатора. Подробнее см. Раздел 10.15, «Отслеживание оптимизатора».
-
Формат командной строки --optimizer-trace-limit=#Переменная системы optimizer_trace_limitОбласть действия Глобальная, Сеанс Динамическая Да SET_VARПрименяется подсказкаНет Тип Целое число Значение по умолчанию 1Минимальное значение 0Максимальное значение 2147483647Максимальное количество отслеживаний оптимизатора для отображения. Подробнее см. Раздел 10.15, «Отслеживание оптимизатора».
-
Формат командной строки --optimizer-trace-max-mem-size=#Переменная системы optimizer_trace_max_mem_sizeОбласть действия Глобальная, Сеанс Динамическая Да SET_VARПрименяется подсказкаДа Тип Целое число Значение по умолчанию 1048576Минимальное значение 0Максимальное значение 4294967295Единицы измерения байты Максимальный кумулятивный размер сохранённых отслеживаний оптимизатора. Подробнее см. Раздел 10.15, «Отслеживание оптимизатора».
-
Формат командной строки --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Область действия Глобальная, Сеанс Динамическая Да SET_VARПрименяется подсказкаНет Тип Целое число Значение по умолчанию (64-разрядные платформы) 18446744073709551615Значение по умолчанию (32-разрядные платформы) 4294967295Минимальное значение 10000000Максимальное значение (64-разрядные платформы) 18446744073709551615Максимальное значение (32-разрядные платформы) 4294967295Единицы измерения байты Максимальный объём памяти, доступный парсеру. Значение по умолчанию не устанавливает ограничений на доступную память. Значение может быть уменьшено для защиты от ситуаций исчерпания памяти, вызванных парсингом длинных или сложных SQL-запросов.
-
Формат командной строки --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Область действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Целое число Значение по умолчанию 0Минимальное значение 0Максимальное значение 4294967295Эта переменная определяет глобальную политику контроля повторного использования предыдущих паролей на основе минимального необходимого числа смен паролей. Для ранее использованного пароля учетной записи эта переменная указывает количество последующих смен пароля учетной записи, которое должно произойти, прежде чем пароль можно будет повторно использовать. Если значение равно 0 (значение по умолчанию), ограничений на повторное использование паролей на основе количества смен нет.
Изменения в этой переменной применяются немедленно ко всем учетным записям, определённым с опцией
PASSWORD HISTORY DEFAULT.Глобальную политику повторного использования паролей, основанную на количестве смен, можно переопределить для отдельных учетных записей с помощью опции
PASSWORD HISTORYоператоровCREATE USERиALTER USER. См. Раздел 8.2.15, «Управление паролями». -
Формат командной строки --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Область действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Целое число Значение по умолчанию 0Минимальное значение 0Максимальное значение 4294967295Единица измерения дней Эта переменная определяет глобальную политику контроля повторного использования предыдущих паролей на основе прошедшего времени. Для ранее использованного пароля учетной записи эта переменная указывает количество дней, которое должно пройти, прежде чем пароль можно будет повторно использовать. Если значение равно 0 (значение по умолчанию), ограничений на повторное использование паролей на основе времени нет.
Изменения в этой переменной применяются немедленно ко всем учетным записям, определённым с опцией
PASSWORD REUSE INTERVAL DEFAULT.Глобальную политику повторного использования паролей, основанную на прошедшем времени, можно переопределить для отдельных учетных записей с помощью опции
PASSWORD REUSE INTERVALоператоровCREATE USERиALTER USER. См. Раздел 8.2.15, «Управление паролями». -
Формат командной строки --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 stringSET PERSISTиSET PERSIST_ONLYпозволяют сохранять системные переменные в файл параметровmysqld-auto.cnfв каталоге данных (см. Раздел 15.7.6.1, «Синтаксис SET для присваивания переменных»). Сохранение системных переменных позволяет сохранять изменения конфигурации во время выполнения, что влияет на последующие перезапуски сервера. Это удобно для удалённого администрирования, не требующего прямого доступа к файлам параметров хоста MySQL-сервера. Однако некоторые системные переменные не поддерживают сохранение или могут быть сохранены только при определённых условиях.Системная переменная
persist_only_admin_x509_subjectуказывает значение SSL сертификата X.509 Subject, которое должны иметь пользователи, чтобы иметь возможность сохранять системные переменные, ограниченные сохранением. Значение по умолчанию - пустая строка, что отключает проверку Subject, поэтому переменные систем, ограниченные сохранением, не могут быть сохранены никем.Если
persist_only_admin_x509_subjectне пустая, пользователи, подключающиеся к серверу с использованием зашифрованного соединения и предоставлением SSL сертификата с указанным значением Subject, могут использоватьSET PERSIST_ONLYдля сохранения переменных систем, ограниченных сохранением. Дополнительную информацию о переменных систем, ограниченных сохранением, и инструкции по настройке MySQL для активацииpersist_only_admin_x509_subject, см. в Разделе 7.1.9.4, «Несохраняемые и ограниченные системные переменные».
-
persist_sensitive_variables_in_plaintextФормат командной строки --persist_sensitive_variables_in_plaintext[={OFF|ON}]Системная переменная persist_sensitive_variables_in_plaintextОбласть видимости Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Тип Булево Значение по умолчанию ONpersist_sensitive_variables_in_plaintextуправляет тем, разрешено ли серверу хранить значения конфиденциальных системных переменных в незашифрованном формате, если поддержка компонента keyring недоступна в момент, когдаSET PERSISTиспользуется для установки значения системной переменной. Он также управляет тем, может ли сервер запускаться, если зашифрованные значения не могут быть расшифрованы. Обратите внимание, что плагины keyring не поддерживают безопасное хранение конфиденциальных системных переменных; компонент keyring (см. Раздел 8.4.4, «Ключница MySQL») должен быть включен в экземпляре сервера MySQL для поддержки безопасного хранения.Настройка по умолчанию,
ON, шифрует значения, если доступна поддержка компонента keyring, и сохраняет их незашифрованными (с предупреждением), если она недоступна. В следующий раз, когда будет установлена любая сохраняемая системная переменная, если поддержка keyring доступна в этот момент, сервер шифрует значения любых незашифрованных конфиденциальных системных переменных. НастройкаONтакже позволяет серверу запускаться, если зашифрованные значения системных переменных не могут быть расшифрованы, в этом случае выдается предупреждение и используются значения по умолчанию для системных переменных. В этой ситуации их значения нельзя изменить, пока их нельзя расшифровать.Наиболее безопасная настройка,
OFF, означает, что значения конфиденциальных системных переменных не могут быть сохранены, если поддержка компонента keyring недоступна. НастройкаOFFтакже означает, что сервер не запускается, если зашифрованные значения системных переменных не могут быть расшифрованы.Для получения дополнительной информации см. Сохранение конфиденциальных системных переменных.
-
Формат командной строки --pid-file=file_nameСистемная переменная pid_fileОбласть видимости Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Тип Имя файла Имя пути к файлу, в котором сервер записывает свой идентификатор процесса. Сервер создает файл в каталоге данных, если только не указано абсолютное имя пути для указания другого каталога. Если вы указываете эту переменную, вы должны указать значение. Если вы не указываете эту переменную, MySQL использует значение по умолчанию
, гдеhost_name.pidhost_name— имя хост-машины.Файл идентификатора процесса используется другими программами, такими как mysqld_safe, для определения идентификатора процесса сервера. В Windows эта переменная также влияет на имя файла журнала ошибок по умолчанию. См. Раздел 7.4.2, «Журнал ошибок».
-
Формат командной строки --plugin-dir=dir_nameСистемная переменная plugin_dirОбласть видимости Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Тип Имя каталога Значение по умолчанию BASEDIR/lib/pluginИмя пути к каталогу плагинов.
Если каталог плагинов доступен для записи сервером, пользователь может записать исполняемый код в файл в каталоге, используя
SELECT ... INTO DUMPFILE. Это можно предотвратить, сделавplugin_dirдоступным только для чтения для сервера или установивsecure_file_privв каталог, кудаSELECTможет безопасно записывать данные. -
Формат командной строки --port=port_numСистемная переменная portОбласть видимости Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 3306Минимальное значение 0Максимальное значение 65535Номер порта, на котором сервер прослушивает TCP/IP-подключения. Эта переменная может быть установлена с помощью параметра
--port. -
Формат командной строки --preload-buffer-size=#Системная переменная preload_buffer_sizeОбласть видимости Глобальная, сессии Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 32768Минимальное значение 1024Максимальное значение 1073741824Единица измерения байты Размер буфера, который выделяется при предварительной загрузке индексов.
Установка значения сессии этой системной переменной является ограниченной операцией. Пользователь сессии должен иметь права, достаточные для установки ограниченных переменных сессии. См. Раздел 7.1.9.1, «Права на системные переменные».
-
Формат командной строки --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отображает такие значения хэшей в виде шестнадцатеричных строк, а не в виде обычных строковых литералов. Значения хэшей, которые не содержат непечатаемых символов, по-прежнему отображаются как обычные строковые литералы, даже если эта переменная включена. -
Если установлено в 0 или
OFF(по умолчанию), профилирование инструкций отключено. Если установлено в 1 илиON, профилирование инструкций включено, и инструкцииSHOW PROFILEиSHOW PROFILESобеспечивают доступ к информации о профилировании. См. Раздел 15.7.7.33, «Инструкция SHOW PROFILES».Эта переменная устарела; ожидается, что она будет удалена в будущей версии MySQL.
-
Количество инструкций, для которых необходимо поддерживать информацию о профилировании, если
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Допустимые значения zlibzstduncompressedАлгоритмы сжатия, разрешаемые сервером для входящих соединений. Сюда входят соединения клиентских программ и серверов, участвующих в репликации источник/реплика или групповой репликации. Сжатие не применяется к соединениям для таблиц
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Область видимости Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 10Минимальное значение 0Максимальное значение 4294967295Версия протокола клиент/сервер, используемая сервером MySQL.
-
Системная переменная proxy_userОбласть видимости Сессия Динамическая Нет SET_VARПодсказка применяетсяНет Тип Строка Если текущий клиент является прокси для другого пользователя, эта переменная представляет собой имя учетной записи пользователя-прокси. В противном случае эта переменная равна
NULL. См. Раздел 8.2.19, «Пользователи-прокси». -
Системная переменная 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Область видимости Сессия Динамическая Да SET_VARПодсказка применяетсяНет Тип Булево Устаревший псевдоним для
pseudo_replica_mode.
-
Системная переменная 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Область видимости Глобальная, Сессия Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 8192Минимальное значение 1024Максимальное значение 4294966272Единица измерения байты Размер блока 1024Размер выделения в байтах блоков памяти, которые выделяются для объектов, создаваемых во время анализа и выполнения оператора. Если у вас возникли проблемы с фрагментацией памяти, может помочь увеличение этого параметра.
Размер блока для байтового числа равен 1024. Значение, которое не является точным кратным размеру блока, округляется вниз до ближайшего меньшего кратного размера блока сервером MySQL перед сохранением значения для системной переменной. Парсер допускает значения вплоть до максимального значения беззнакового целого числа для платформы (4294967295 или 232−1 для 32-битной системы, 18446744073709551615 или 264−1 для 64-битной системы), но фактический максимум на размер блока меньше.
-
Формат командной строки --query-prealloc-size=#Устарело Да Системная переменная query_prealloc_sizeОбласть видимости Глобальная, Сессия Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 8192Минимальное значение 8192Максимальное значение (64-битные платформы) 18446744073709550592Максимальное значение (32-битные платформы) 4294966272Единица измерения байты Размер блока 1024query_prealloc_sizeустарела, и ее установка не оказывает никакого эффекта; следует ожидать ее удаления в будущей версии MySQL. -
Системная переменная rand_seed1Область видимости Сессия Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию N/AМинимальное значение 0Максимальное значение 4294967295Переменные
rand_seed1иrand_seed2существуют только как переменные сессии и могут быть установлены, но не прочитаны. Переменные (но не их значения) отображаются в выводеSHOW VARIABLES.Цель этих переменных — поддержка репликации функции
RAND(). Для операторов, которые вызываютRAND(), источник передает два значения реплике, где они используются для инициализации генератора случайных чисел. Реплика использует эти значения для установки переменных сессииrand_seed1иrand_seed2так, чтобыRAND()на реплике генерировала то же значение, что и на источнике. -
См. описание для
rand_seed1. -
Формат командной строки --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Область видимости Глобальная, Сессия Динамическая Да SET_VARПодсказка применяетсяДа Тип Целое число Значение по умолчанию 8388608Минимальное значение 0Максимальное значение 18446744073709551615Единица измерения байты Предел потребления памяти для оптимизатора диапазона. Значение 0 означает “без ограничения.” Если план выполнения, рассматриваемый оптимизатором, использует метод доступа к диапазону, но оптимизатор оценивает, что объем памяти, необходимый для этого метода, превысит лимит, он отказывается от плана и рассматривает другие планы. Для получения дополнительной информации см. Ограничение использования памяти для оптимизации диапазона.
-
Переменная системы rbr_exec_modeОбласть действия Сеанс Динамическая Да SET_VARПрименение подсказкиНет Тип Перечисление Значение по умолчанию STRICTДопустимые значения STRICTIDEMPOTENTДля внутреннего использования mysqlbinlog. Эта переменная переключает сервер между режимом
IDEMPOTENTи режимомSTRICT. РежимIDEMPOTENTподавляет ошибки дублирования ключей и отсутствия ключей в операцияхBINLOG, сгенерированных mysqlbinlog. Этот режим полезен при воспроизведении двоичного журнала основанного на строках на сервере, который приводит к конфликтам с существующими данными. mysqlbinlog устанавливает этот режим при указании параметра--idempotentзаписью следующего в выходные данные:SET SESSION RBR_EXEC_MODE=IDEMPOTENT;
-
Формат командной строки --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[={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Область действия Глобальная, Сеанс Динамическая Да 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Область действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Целое число Значение по умолчанию 8000000Минимальное значение 0Максимальное значение 2147483647Единица измерения байты Максимальный объем доступной памяти в байтах для внутреннего стека, используемого для операций сопоставления регулярных выражений, выполняемых функцией
REGEXP_LIKE()и аналогичными функциями (см. Раздел 14.8.2, «Регулярные выражения»).
-
Формат командной строки --regexp-time-limit=#Системная переменная regexp_time_limitОбласть действия Глобальная Динамическая Да Применяется подсказка SET_VARНет Тип Целое число Значение по умолчанию 32Минимальное значение 0Максимальное значение 2147483647Предельное время для операций сопоставления с регулярными выражениями, выполняемых функцией
REGEXP_LIKE()и подобными функциями (см. Раздел 14.8.2, «Регулярные выражения»). Этот предел выражается как максимальное допустимое количество шагов, выполняемых движком поиска соответствия, и, следовательно, влияет на время выполнения только косвенно. Обычно это порядка миллисекунд. -
Системная переменная require_row_formatОбласть действия Сеанс Динамическая Да Применяется подсказка SET_VARНет Тип Булево Значение по умолчанию OFFЭта переменная предназначена для внутреннего использования сервером в репликации и mysqlbinlog. Она ограничивает события DML, выполняемые в сеансе, только событиями, закодированными в формате двоичного журналирования на основе строк, и создание временных таблиц недоступно. Запросы, не соблюдающие ограничения, завершаются с ошибкой.
Установка значения этой системной переменной в сеансе на
ONне требует привилегий. Установка значения этой системной переменной в сеансе наOFF— это ограниченная операция, и пользователь сеанса должен обладать привилегиями, достаточными для установки ограниченных переменных сеанса. См. Раздел 7.1.9.1, «Привилегии на системные переменные». -
Формат командной строки --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Область действия Сеанс Динамическая Да Применяется подсказка SET_VARНет Тип Перечисление Значение по умолчанию FULLДопустимые значения FULLNONEДля подключений, для которых передача метаданных необязательна, клиент устанавливает системную переменную
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Область действия Глобальная Динамическая Да Применяется подсказка SET_VARНет Тип Целое число Значение по умолчанию 256Минимальное значение 256Максимальное значение 524288Определяет ограничение для количества объектов определения схемы, как используемых, так и неиспользуемых, которые могут храниться в кэше объекта словаря.
Неиспользуемые объекты определения схемы хранятся в кэше объекта словаря только тогда, когда количество используемых объектов меньше емкости, определенной
schema_definition_cache.Значение
0означает, что объекты определения схемы хранятся в кэше объекта словаря только в момент их использования.Для получения дополнительной информации см. Раздел 16.4, «Кэш объекта словаря».
-
Формат командной строки --secure-file-priv=dir_nameПеременная системы secure_file_privОбласть действия Глобальная Динамическая Нет Применяется подсказка SET_VARНет Тип Строка Значение по умолчанию platform specificДопустимые значения empty stringdirnameNULLЭта переменная используется для ограничения влияния операций импорта и экспорта данных, таких как те, которые выполняются операторами
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_privSTANDALONEпустое DEB,RPM,SVR4/var/lib/mysql-filesВ противном случае mysql-filesв значенииCMAKE_INSTALL_PREFIXСервер проверяет значение
secure_file_privпри запуске и записывает предупреждение в журнал ошибок, если значение небезопасно. Значение, отличное отNULL, считается небезопасным, если оно пустое, или это каталог данных или подкаталог к нему, или каталог, доступный всем пользователям. Еслиsecure_file_privустановлено на несуществующий путь, сервер записывает сообщение об ошибке в журнал ошибок и завершает работу. -
Формат командной строки --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={ON|OFF}Переменная системы select_into_disk_syncОбласть действия Глобальная, сеанс Динамическая Да Применяется подсказка SET_VARДа Тип Булево Значение по умолчанию OFFДопустимые значения OFFONПри установке в значение
ON, включает синхронизацию буфера записей в выходной файл в ходе выполнения длительного оператораSELECT INTO OUTFILEилиSELECT INTO DUMPFILE, использующегоselect_into_buffer_size.
-
Формат командной строки --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=valueПеременная системы session_track_gtidsОбласть действия Глобальная, Сеансовая Динамическая Да SET_VARПрименяется подсказкаНет Тип Перечисление Значение по умолчанию OFFДопустимые значения OFFOWN_GTIDALL_GTIDSУправляет тем, возвращает ли сервер GTID клиенту, позволяя клиенту отслеживать состояние сервера. В зависимости от значения переменной, в конце выполнения каждой транзакции, GTID сервера захватываются и возвращаются клиенту в рамках подтверждения. Возможные значения для
session_track_gtidsтаковы:OFF: Сервер не возвращает GTID клиенту. Это значение по умолчанию.OWN_GTID: Сервер возвращает GTID для всех транзакций, успешно подтвержденных этим клиентом в текущем сеансе с момента последнего подтверждения. Как правило, это единственный GTID для последней подтвержденной транзакции, но если один запрос клиента привел к нескольким транзакциям, сервер возвращает набор GTID, содержащий все соответствующие GTID.ALL_GTIDS: Сервер возвращает глобальное значение своей системной переменнойgtid_executed, которое считывается в момент после успешного подтверждения транзакции. Помимо GTID только что подтвержденной транзакции, этот набор GTID включает все транзакции, подтвержденные на сервере любым клиентом, и может включать транзакции, подтвержденные после момента, когда транзакция, в настоящее время подтверждаемая, была подтверждена.
session_track_gtidsне может быть установлено в контексте транзакции.Дополнительную информацию об отслеживании состояния сеанса см. в Разделе 7.1.18, «Отслеживание сервером состояния сеанса клиента».
-
Формат командной строки --session-track-schema[={OFF|ON}]Переменная системы session_track_schemaОбласть действия Глобальная, Сеансовая Динамическая Да SET_VARПрименяется подсказкаНет Тип Булево Значение по умолчанию ONУправляет тем, отслеживает ли сервер, когда в текущем сеансе установлена схема по умолчанию (база данных), и уведомляет ли клиент о доступности имени схемы.
Если отслеживание имени схемы включено, уведомление о имени происходит каждый раз, когда устанавливается схема по умолчанию, даже если новое имя схемы такое же, как старое.
Дополнительную информацию об отслеживании состояния сеанса см. в Разделе 7.1.18, «Отслеживание сервером состояния сеанса клиента».
-
Формат командной строки --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Допустимые значения OFFSTATECHARACTERISTICSУправляет тем, отслеживает ли сервер состояние и характеристики транзакций в текущем сеансе и уведомляет ли клиент, чтобы сделать эту информацию доступной. Разрешены следующие значения
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_VARПрименяется подсказкаНет Тип Целое число Значение по умолчанию 256KМинимальное значение 16KМаксимальное значение 1 GBУстанавливает размер буфера для операций
INTERSECTиEXCEPT, использующих хэш-таблицы, когда переключатель оптимизатораhash_set_operationsустановлен в значениеON. В целом, увеличение размера этого буфера улучшает производительность этих операций, когда включена оптимизация хеширования. -
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.2, «Плагин аутентификации SHA-256» и раздел 8.4.1.1, «Плагин аутентификации кэширования 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.2 «SHA-256 Плагин аутентификации». -
Формат командной строки --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.2 «SHA-256 Плагин аутентификации». -
Формат командной строки --shared-memory[={OFF|ON}]Переменная системы shared_memoryОбласть действия Глобальная Динамическая Нет Применимо для подсказки SET_VARНет Специфично для платформы Windows Тип Булево Значение по умолчанию OFF(Только Windows.) Разрешает ли сервер подключения через общую память.
-
Формат командной строки --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[={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.21.11 «Сгенерированные невидимые первичные ключи».
-
Формат командной строки --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[={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[={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Область действия Глобальная Динамическая Нет Применяется подсказка 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Область видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 2Минимальное значение 0Максимальное значение 31536000Единица измерения секунды Если создание потока занимает больше указанного количества секунд, сервер увеличивает значение переменной состояния
Slow_launch_threads. -
Формат командной строки --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=file_nameСистемная переменная slow_query_log_fileОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Имя файла Значение по умолчанию host_name-slow.logИмя файла журнала медленных запросов. Значение по умолчанию —
, но начальное значение может быть изменено с помощью параметраhost_name-slow.log--slow_query_log_file. -
Формат командной строки --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Область видимости Глобальная, сеанса Динамическая Да 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Область видимости Глобальная, сеанса Динамическая Да SET_VARПодсказка применяетсяДа Тип Логическое Значение по умолчанию OFFЕсли эта переменная включена, то после оператора, который успешно вставляет автоматически генерируемое значение
AUTO_INCREMENT, вы можете найти это значение, выполнив оператор следующего вида:SELECT * FROM
tbl_nameWHEREauto_colIS 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Область действия Глобальная, Сессия Динамическая Да SET_VARПрименяется подсказкаДа Тип Булево Значение по умолчанию ONЕсли установлено значение
OFF, MySQL прерывает операторыSELECT, которые, вероятно, потребуют очень много времени для выполнения (то есть, операторы, для которых оптимизатор оценивает, что количество просматриваемых строк превышает значениеmax_join_size). Это полезно, когда был выпущен нежелательный операторWHERE. Значение по умолчанию для нового подключения равноON, что позволяет выполнять все операторыSELECT.Если вы установите переменную системы
max_join_sizeна значение, отличное отDEFAULT,sql_big_selectsустанавливается в значениеOFF. -
Переменная системы 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.21.11, “Сгенерированные невидимые первичные ключи”.
-
Переменная системы sql_log_offОбласть действия Глобальная, Сессия Динамическая Да SET_VARПрименяется подсказкаНет Тип Булево Значение по умолчанию OFFДопустимые значения OFF(включить логирование)ON(отключить логирование)Эта переменная управляет отключением логирования в общий журнал запросов для текущей сессии (при условии, что сам общий журнал запросов включен). Значение по умолчанию равно
OFF(то есть, включить логирование). Чтобы отключить или включить общий журнал запросов для текущей сессии, установите переменную сессииsql_log_offна значениеONилиOFF.Установка значения сессии этой переменной системы является ограниченной операцией. Пользователь сессии должен иметь права, достаточные для установки ограниченных переменных сессии. См. раздел 7.1.9.1, “Права на переменные системы”.
-
Формат командной строки --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_DATESANSI_QUOTESERROR_FOR_DIVISION_BY_ZEROHIGH_NOT_PRECEDENCEIGNORE_SPACENO_AUTO_VALUE_ON_ZERONO_BACKSLASH_ESCAPESNO_DIR_IN_CREATENO_ENGINE_SUBSTITUTIONNO_UNSIGNED_SUBTRACTIONNO_ZERO_DATENO_ZERO_IN_DATEONLY_FULL_GROUP_BYPAD_CHAR_TO_FULL_LENGTHPIPES_AS_CONCATREAL_AS_FLOATSTRICT_ALL_TABLESSTRICT_TRANS_TABLESTIME_TRUNCATE_FRACTIONALТекущий режим SQL сервера, который можно изменять динамически. Подробности см. в разделе 7.1.11, “Режимы SQL сервера”.
ПримечаниеПрограммы установки MySQL могут настроить режим SQL во время процесса установки.
Если режим SQL отличается от значения по умолчанию или от ожидаемого значения, проверьте настройку в файле параметров, который сервер читает при запуске.
-
Переменная системы sql_notesОбласть действия Глобальная, Сессия Динамическая Да SET_VARПрименяется подсказкаНет Тип Булево Значение по умолчанию ONПри включении (по умолчанию), диагностические сообщения уровня
Noteувеличивают значениеwarning_count, и сервер записывает их. При отключении диагностические сообщения уровняNoteне увеличивают значениеwarning_count, и сервер их не записывает. mysqldump включает вывод для отключения этой переменной, чтобы при перезагрузке файла дампов не появлялись предупреждения для событий, которые не влияют на целостность операции перезагрузки.
-
Переменная сервера sql_quote_show_createОбласть действия Глобальная, сеансовая Динамическая Да SET_VARПодсказка применяетсяНет Тип Булево Значение по умолчанию ONПри включенном значении (по умолчанию), сервер экранирует идентификаторы для команд
SHOW CREATE TABLEиSHOW CREATE DATABASE. При отключенном значении, экранирование отключено. Эта опция включена по умолчанию, чтобы репликация работала для идентификаторов, требующих экранирования. См. Раздел 15.7.7.12, «Запрос SHOW CREATE TABLE» и Раздел 15.7.7.7, «Запрос SHOW CREATE DATABASE». -
Формат командной строки --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Область действия Глобальная, сеансовая Динамическая Да SET_VARПодсказка применяетсяДа Тип Булево Значение по умолчанию OFFЕсли эта переменная включена,
UPDATEиDELETEзапросы, которые не используют ключ в предложенииWHEREили предложенииLIMIT, генерируют ошибку. Это позволяет перехватыватьUPDATEиDELETEзапросы, где ключи не используются должным образом, и которые, вероятно, изменят или удалят большое количество строк. Значение по умолчанию —OFF.Для клиента mysql,
sql_safe_updatesможно включить, используя опцию--safe-updates. Для получения дополнительной информации, см. Использование режима Safe-Updates (--safe-updates). -
Переменная сервера 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Область действия Глобальная, сеансовая Динамическая Да SET_VARПодсказка применяетсяНет Тип Булево Значение по умолчанию OFFЭта переменная контролирует, отображается ли строка с информацией о предупреждениях при выполнении запроса
INSERTдля одной строки. По умолчанию —OFF. Установите значение вON, чтобы отобразить строку с информацией о предупреждениях.
-
Формат командной строки --ssl-ca=file_nameСистемная переменная ssl_caОбласть действия Глобальная Динамическая Да SET_VARПрименимоНет Тип Имя файла Значение по умолчанию NULLПуть к файлу сертификата Центра сертификации (CA) в формате PEM. Файл содержит список доверенных центров сертификации SSL.
Эту переменную можно изменить во время выполнения, чтобы повлиять на контекст TLS, используемый сервером для новых подключений, установленных после выполнения
ALTER INSTANCE RELOAD TLSили после перезапуска, если значение переменной было сохранено. См. Настройка и мониторинг серверной стороны для шифрованных соединений. -
Формат командной строки --ssl-capath=dir_nameСистемная переменная ssl_capathОбласть действия Глобальная Динамическая Да SET_VARПрименимоНет Тип Имя каталога Значение по умолчанию NULLПуть к каталогу, содержащему файлы сертификатов доверенных центров сертификации (CA) в формате PEM.
Эта переменная может быть изменена во время выполнения, чтобы повлиять на контекст TLS, используемый сервером для новых подключений, установленных после выполнения
ALTER INSTANCE RELOAD TLSили после перезапуска, если значение переменной было сохранено. См. Настройка и мониторинг серверной стороны для шифрованных соединений. -
Формат командной строки --ssl-cert=file_nameСистемная переменная ssl_certОбласть действия Глобальная Динамическая Да SET_VARПрименимоНет Тип Имя файла Значение по умолчанию NULLПуть к файлу сертификата открытого ключа сервера SSL в формате PEM.
Если сервер запущен с
ssl_cert, установленным на сертификат, использующий любой ограниченный шифр или категорию шифров, сервер запускается с отключенной поддержкой шифрованных соединений. Сведения об ограничениях шифров см. в Настройка шифров соединения.Эту переменную можно изменить во время выполнения, чтобы повлиять на контекст TLS, используемый сервером для новых подключений, установленных после выполнения
ALTER INSTANCE RELOAD TLSили после перезапуска, если значение переменной было сохранено. См. Настройка и мониторинг серверной стороны для шифрованных соединений. -
Формат командной строки --ssl-cipher=nameСистемная переменная ssl_cipherОбласть действия Глобальная Динамическая Да SET_VARПрименимоНет Тип Строка Значение по умолчанию NULLСписок допустимых шифров шифрования для подключений, использующих TLSv1.2. Если ни один шифр в списке не поддерживается, шифрованные соединения, использующие этот протокол TLS, не работают.
Список может включать следующие значения:
ECDHE-ECDSA-AES128-GCM-SHA256ECDHE-ECDSA-AES256-GCM-SHA384ECDHE-RSA-AES128-GCM-SHA256ECDHE-RSA-AES256-GCM-SHA384ECDHE-ECDSA-CHACHA20-POLY1305ECDHE-RSA-CHACHA20-POLY1305ECDHE-ECDSA-AES256-CCMECDHE-ECDSA-AES128-CCMDHE-RSA-AES128-GCM-SHA256DHE-RSA-AES256-GCM-SHA384DHE-RSA-AES256-CCMDHE-RSA-AES128-CCMDHE-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=file_nameСистемная переменная ssl_crlОбласть действия Глобальная Динамическая Да SET_VARПрименимоНет Тип Имя файла Значение по умолчанию NULLПуть к файлу, содержащему списки отзыва сертификатов в формате PEM.
Эту переменную можно изменить во время выполнения, чтобы повлиять на контекст TLS, используемый сервером для новых подключений, установленных после выполнения
ALTER INSTANCE RELOAD TLSили после перезапуска, если значение переменной было сохранено. См. Настройка и мониторинг серверной стороны для шифрованных соединений. -
Формат командной строки --ssl-crlpath=dir_nameСистемная переменная ssl_crlpathОбласть действия Глобальная Динамическая Да SET_VARПрименимоНет Тип Имя каталога Значение по умолчанию NULLПуть к каталогу, содержащему файлы списков отзыва сертификатов в формате PEM.
Эту переменную можно изменить во время выполнения, чтобы повлиять на контекст TLS, используемый сервером для новых подключений, установленных после выполнения
ALTER INSTANCE RELOAD TLSили после перезапуска, если значение переменной было сохранено. См. Настройка и мониторинг серверной стороны для шифрованных соединений.
-
Формат командной строки --ssl-fips-mode={OFF|ON|STRICT}Устарело Да Системная переменная ssl_fips_modeОбласть видимости Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Тип Перечисление Значение по умолчанию OFFДопустимые значения OFF(или 0)ON(или 1)STRICT(или 2)Управляет включением режима FIPS на стороне сервера. Системная переменная
ssl_fips_modeотличается от других системных переменныхssl_тем, что она не используется для управления тем, разрешает ли сервер зашифрованные соединения, а скорее для того, чтобы повлиять на то, какие криптографические операции разрешены. См. Раздел 8.8, «Поддержка FIPS».xxxДопускаются следующие значения
ssl_fips_mode:OFF(или 0): Отключить режим FIPS.ON(или 1): Включить режим FIPS.STRICT(или 2): Включить строгий режим “strict” FIPS.
ПримечаниеЕсли модуль объектов OpenSSL FIPS недоступен, единственным допустимым значением для
ssl_fips_modeявляетсяOFF. В этом случае установкаssl_fips_modeвONилиSTRICTпри запуске приводит к тому, что сервер выдает сообщение об ошибке и завершает работу.Этот параметр устарел и стал доступен только для чтения. Ожидается, что он будет удален в будущей версии MySQL.
-
Формат командной строки --ssl-key=file_nameСистемная переменная ssl_keyОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Имя файла Значение по умолчанию NULLИмя пути к файлу закрытого ключа SSL сервера в формате PEM. Для повышения безопасности используйте сертификат с размером ключа RSA не менее 2048 бит.
Если файл ключа защищен парольной фразой, сервер запрашивает у пользователя парольную фразу. Пароль должен быть введен интерактивно; он не может храниться в файле. Если парольная фраза неверна, программа продолжает работу так, как если бы она не смогла прочитать ключ.
Эта переменная может быть изменена во время выполнения, чтобы повлиять на контекст TLS, который сервер использует для новых соединений, установленных после выполнения
ALTER INSTANCE RELOAD TLSили после перезапуска, если значение переменной было сохранено. См. Конфигурация и мониторинг времени выполнения на стороне сервера для зашифрованных соединений. -
Формат командной строки --ssl_session_cache_mode={ON|OFF}Системная переменная ssl_session_cache_modeОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Булево Значение по умолчанию ONДопустимые значения ONOFFУправляет включением кэша сеансов в памяти на стороне сервера и генерацией билетов сеансов сервером. Режим по умолчанию —
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Область видимости Глобальная Динамическая Да 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Область видимости Сеанс Динамическая Нет SET_VARПодсказка применяетсяНет Тип Целое число Каждому оператору, выполненному в текущем сеансе, присваивается порядковый номер. Это можно использовать вместе с системной переменной
session_track_system_variablesдля идентификации этого оператора в таблицах схемы производительности, таких как таблицаevents_statements_history.
-
Формат командной строки --stored-program-cache=#Переменная системы stored_program_cacheОбласть действия Глобальная Динамическая Да SET_VARПрименимоНет Тип Целое число Значение по умолчанию 256Минимальное значение 16Максимальное значение 524288Устанавливает мягкий верхний предел для количества кэшированных хранимых процедур на подключение. Значение этой переменной определяется количеством хранимых процедур, хранящихся в каждом из двух кэшей, поддерживаемых MySQL Server для, соответственно, хранимых процедур и хранимых функций.
Всякий раз, когда выполняется хранимая процедура, этот размер кэша проверяется перед парсингом первого или верхнего уровня оператора в процедуре; если количество процедур одного типа (хранимые процедуры или хранимые функции в зависимости от того, какая выполняется) превышает предел, указанный этой переменной, соответствующий кэш очищается, а ранее выделенная память для кэшированных объектов освобождается. Это позволяет безопасно очистить кэш, даже если существуют зависимости между хранимыми процедурами.
Кэши хранимых процедур и хранимых функций существуют параллельно с кэшем определений хранимых программ раздела . Кэши хранимых процедур и хранимых функций относятся к каждому подключению, в то время как кэш определений хранимых программ общий. Существование объектов в кэшах хранимых процедур и хранимых функций не зависит от существования объектов в кэше определений хранимых программ и наоборот. Дополнительные сведения см. в Разделе 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[={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=valueПеременная системы syseventlog.facilityОбласть действия Глобальная Динамическая Да SET_VARПрименимоНет Тип Строка Значение по умолчанию daemonУтилита для вывода в журнал ошибок, записанных в
syslog(какой тип программы отправляет сообщение). Эта переменная недоступна, если компонент журнала ошибокlog_sink_syseventlogне установлен. См. Раздел 7.4.2.8, «Логирование ошибок в системный журнал».Допустимые значения могут отличаться в зависимости от операционной системы; обратитесь к документации вашей системы
syslog.Эта переменная не существует в Windows.
-
Формат командной строки --syseventlog.include-pid[={OFF|ON}]Переменная системы syseventlog.include_pidОбласть действия Глобальная Динамическая Да SET_VARПрименимоНет Тип Булево Значение по умолчанию ONВключать ли идентификатор процесса сервера в каждой строке вывода журнала ошибок, записанного в
syslog. Эта переменная недоступна, если компонент журнала ошибокlog_sink_syseventlogне установлен. См. Раздел 7.4.2.8, «Логирование ошибок в системный журнал».Эта переменная не существует в Windows.
-
Формат командной строки --syseventlog.tag=tagПеременная системы syseventlog.tagОбласть действия Глобальная Динамическая Да SET_VARПрименяется ли подсказкаНет Тип Строка Значение по умолчанию empty stringТег, который добавляется к идентификатору сервера в выходных данных журналов ошибок, записанных в
syslogили журнал событий Windows. Эта переменная недоступна, если компонент журнала ошибокlog_sink_syseventlogне установлен. См. Раздел 7.4.2.8, «Журналирование ошибок в системный журнал».По умолчанию тег не задан, поэтому идентификатор сервера просто отображается как
MySQLв Windows иmysqldна других платформах. Если задано значение тегаtag, оно добавляется к идентификатору сервера с ведущим дефисом, что приводит к идентификатору сервераsyslog(илиMySQL-в Windows).tagВ Windows, чтобы использовать тег, которого еще нет, сервер должен запускаться от учетной записи с правами администратора, чтобы разрешить создание записи реестра для тега. Повышенные права не требуются, если тег уже существует.
-
Переменная системы 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Область действия Глобальная Динамическая Да 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Область видимости Глобальная Динамическая Да 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Область видимости Глобальная Динамическая Нет 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, чтобы ограничить использование памяти. -
Формат командной строки --table-open-cache-triggers=valueСистемная переменная table_open_cache_triggersОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 524288Минимальное значение 1Максимальное значение 524288Максимальное общее количество кэшированных открытых таблиц с полностью загруженными триггерами. Это включает как используемые, так и неиспользуемые таблицы с полностью загруженными триггерами.
table_open_cache_triggersаналогичнаtable_open_cache, но управляет механизмом вытеснения специально для таблиц с полностью загруженными триггерами. Значение по умолчанию дляtable_open_cache_triggersтакое же, как и максимальное; установка значения меньше этого активирует логику вытеснения, специфичную для таблиц с полностью загруженными триггерами. Оставлениеtable_open_cache_triggersпо умолчанию означает, что никакие таблицы не вытесняются из кэша на основе того, есть ли у них какие-либо полностью загруженные триггеры, что соответствует поведению в версиях MySQL до 9.1.Максимальное количество кэшированных таблиц с триггерами на каждый экземпляр кэша определяется
table_open_cache_triggers/table_open_cache_instances. Когда этим системным переменным разрешено сохранять свои значения по умолчанию, это значение равно 32768. -
Формат командной строки --tablespace-definition-cache=#Системная переменная tablespace_definition_cacheОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 256Минимальное значение 256Максимальное значение 524288Определяет предел для количества объектов определения табличного пространства, как используемых, так и неиспользуемых, которые могут храниться в кэше объектов словаря.
Неиспользуемые объекты определения табличного пространства хранятся в кэше объектов словаря только тогда, когда количество используемых объектов меньше емкости, определенной
tablespace_definition_cache.Установка
0означает, что объекты определения табличного пространства хранятся в кэше объектов словаря только во время их использования.Для получения дополнительной информации см. Раздел 16.4, «Кэш объектов словаря».
-
Формат командной строки --temptable-max-mmap=#Системная переменная temptable_max_mmapОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 0Минимальное значение 0Максимальное значение 2^64-1Единица измерения байты Определяет максимальный объем памяти (в байтах), который механизм хранения TempTable может выделять из файлов временных файлов с отображением в памяти, прежде чем он начнет сохранять данные во
InnoDBвнутренние временные таблицы на диске. Установка 0 (по умолчанию) отключает выделение памяти из временных файлов с отображением в памяти. Для получения дополнительной информации см. Раздел 10.4.4, «Использование внутренних временных таблиц в MySQL».До MySQL 8.4 этот параметр был установлен в 1 ГБ вместо 0.
-
Формат командной строки --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 ГБ. Для получения дополнительной информации см. Раздел 10.4.4, «Использование внутренних временных таблиц в MySQL».Переменная состояния
TempTable_count_hit_max_ramподсчитывает количество раз, когда движокTempTableдостиг ограниченияtemptable_max_ram.Перед MySQL 8.4 значение по умолчанию всегда было 1 ГБ.
-
Формат командной строки --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Область действия Глобальная Динамическая Да SET_VARПрименяется ли подсказкаНет Тип Целое число Значение по умолчанию -1(указывает на автоматическое масштабирование; не присваивайте это значение)Минимальное значение 0Максимальное значение 16384Количество потоков, которые сервер должен кэшировать для повторного использования. При отключении клиента его потоки помещаются в кэш, если количество потоков там меньше
thread_cache_size. Запросы на потоки удовлетворяются с помощью повторного использования потоков из кэша, если это возможно, и только когда кэш пуст, создаётся новый поток. Эту переменную можно увеличить для повышения производительности, если у вас много новых подключений. Обычно это не обеспечивает заметного улучшения производительности, если у вас хорошая реализация потоков. Однако, если ваш сервер видит сотни подключений в секунду, вам обычно следует установитьthread_cache_sizeдостаточно высоким, чтобы большинство новых подключений использовали кэшированные потоки. Проведя анализ разницы между переменными состоянияConnectionsиThreads_created, вы можете увидеть, насколько эффективен кэш потоков. Подробности см. в Разделе 7.1.10, «Переменные состояния сервера».Значение по умолчанию основано на следующей формуле, ограниченной значением 100:
8 + (max_connections / 100)
-
Формат командной строки --thread-handling=nameСистемная переменная thread_handlingОбласть действия Глобальная Динамическая Нет SET_VARПрименяется ли подсказкаНет Тип Перечисление Значение по умолчанию one-thread-per-connectionДопустимые значения no-threadsone-thread-per-connectionloaded-dynamicallyМодель обработки потоков, используемая сервером для потоков подключений. Допустимые значения:
no-threads(сервер использует один поток для обработки одного подключения),one-thread-per-connection(сервер использует один поток для каждого подключения клиента) иloaded-dynamically(устанавливается плагином пула потоков при его инициализации).no-threadsполезна для отладки под Linux; см. Раздел 7.9, «Отладка MySQL». -
Формат командной строки --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 9.2.
-
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Область действия Глобальная Динамическая Да 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 9.2.
-
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Область видимости Глобальная Динамическая Да 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 9.2.
-
Формат командной строки --thread-pool-size=#Системная переменная thread_pool_sizeОбласть видимости Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 16Минимальное значение 1Максимальное значение 512Количество групп потоков в пуле потоков. Это наиболее важный параметр, контролирующий производительность пула потоков. Он влияет на то, сколько операторов могут выполняться одновременно. Если указано значение, выходящее за пределы допустимого диапазона значений, плагин пула потоков не загружается, и сервер записывает сообщение в журнал ошибок.
Эта переменная доступна только в случае включения плагина пула потоков. См. Раздел 7.6.3, «Пул потоков MySQL Enterprise».
-
Формат командной строки --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Область видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 0Минимальное значение 0Максимальное значение 300000Период задержки перед выполнением новой транзакции в миллисекундах. Максимальное значение равно 300000 (5 минут).
Задержка транзакции может использоваться в случаях, когда параллельные транзакции влияют на производительность других операций из-за конкуренции за ресурсы. Например, если параллельные транзакции влияют на создание индекса или операцию изменения размера буферного пула онлайн, вы можете настроить задержку транзакции, чтобы уменьшить конкуренцию за ресурсы во время выполнения этих операций.
Рабочие потоки спят в течение количества миллисекунд, указанных
thread_pool_transaction_delay, прежде чем выполнить новую транзакцию.Настройка
thread_pool_transaction_delayне влияет на запросы, выданные из привилегированного соединения (соединение, назначенное группе потоковAdmin). Эти запросы не подвержены настроенной задержке транзакции. -
Формат командной строки --thread-stack=#Системная переменная thread_stackОбласть видимости Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 1048576Минимальное значение 131072Максимальное значение (64-разрядные платформы) 18446744073709550592Максимальное значение (32-разрядные платформы) 4294966272Единица измерения байты Размер блока 1024Размер стека для каждого потока. Значение по умолчанию достаточно велико для нормальной работы. Если размер стека потока слишком мал, это ограничивает сложность операторов SQL, которые может обрабатывать сервер, глубину рекурсии хранимых процедур и другие действия, потребляющие много памяти.
-
Переменная системы time_zoneОбласть Глобальная, Сессия Динамическая Да SET_VARПрименимоДа Тип Строка Значение по умолчанию SYSTEMМинимальное значение -13:59Максимальное значение +14:00Текущая временная зона. Эта переменная используется для инициализации временной зоны для каждого клиента, который подключается. По умолчанию начальное значение равно
'SYSTEM'(что означает, “использовать значениеsystem_time_zone”). Значение можно явно указать при запуске сервера с опцией--default-time-zone. См. Раздел 7.1.15, «Поддержка временных зон сервера MySQL».ПримечаниеЕсли значение установлено на
SYSTEM, каждый вызов функции MySQL, требующий расчета временной зоны, выполняет системный вызов для определения текущей системной временной зоны. Этот вызов может быть защищён глобальной блокировкой, что может привести к конфликтам. -
Переменная системы 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=ciphersuite_listПеременная системы tls_ciphersuitesОбласть Глобальная Динамическая Да SET_VARПрименимоНет Тип Строка Значение по умолчанию NULLКакие наборы шифров сервер разрешает для зашифрованных соединений, использующих TLSv1.3. Значение — список нулевого или более имён наборов шифров, разделённых двоеточием, из списка ниже:
TLS_AES_128_GCM_SHA256TLS_AES_256_GCM_SHA384TLS_CHACHA20_POLY1305_SHA256TLS_AES_128_CCM_SHA256
Попытка включить в список шифров значения, отсутствующие в этом списке, при установке этой переменной, вызовет ошибку ().
Доступные для указания наборы шифров зависят от используемой библиотеки SSL при компиляции MySQL. Если эта переменная не установлена, её значение по умолчанию —
NULL, что означает, что сервер разрешает стандартный набор шифров. Если переменная установлена на пустую строку, наборы шифров не активированы, и зашифрованные соединения не могут быть установлены. Подробнее см. Раздел 8.3.2, «Протоколы и наборы шифров TLS зашифрованных соединений».
-
Формат командной строки --tls-version=protocol_listСистемная переменная tls_versionОбласть Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Строка Значение по умолчанию TLSv1.2,TLSv1.3Какие протоколы сервер разрешает для защищённых соединений. Значение представляет собой список одного или нескольких имён протоколов, разделённых запятыми, регистр при этом не учитывается. Протоколы, которые можно указать для этой переменной, зависят от используемой библиотеки SSL при компиляции MySQL. Разрешённые протоколы следует выбирать так, чтобы в списке не оставалось «дыр». Подробности см. в Разделе 8.3.2, «Протоколы TLS и шифры защищённого соединения».
Эту переменную можно изменить во время выполнения, чтобы повлиять на контекст TLS, используемый сервером для новых соединений. См. Конфигурация и мониторинг серверной стороны во время выполнения для защищённых соединений.
ВажноMySQL 9.2 не поддерживает протоколы TLSv1 и TLSv1.1 для соединения. См. для получения дополнительной информации.
Поддержка протокола TLSv1.3 доступна в MySQL 9.2, при условии, что MySQL Server был скомпилирован с использованием OpenSSL 1.1.1 или выше. Сервер проверяет версию OpenSSL при запуске, и если она ниже 1.1.1, TLSv1.3 удаляется из значения по умолчанию для системной переменной. В этом случае значение по умолчанию —
TLSv1.2.
Установка этой переменной в пустую строку отключает защищённые соединения.
-
Формат командной строки --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и у вас много оперативной памяти.Системная переменная
Count_hit_tmp_table_sizeподсчитывает количество внутренних временных таблиц, которые были преобразованы из оперативной памяти в таблицы на диске из-за достижения лимитов размера для движков храненияTempTableилиMEMORY.Вы можете сравнить количество созданных внутренних временных таблиц на диске с общим количеством созданных внутренних временных таблиц, сравнив значения
Created_tmp_disk_tablesиCreated_tmp_tables.См. также Раздел 10.4.4, «Использование внутренних временных таблиц в MySQL».
-
Формат командной строки --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Область Глобальная, Сеанс Динамическая Да SET_VARПрименяется подсказкаНет Тип Целое число Значение по умолчанию 8192Минимальное значение 1024Максимальное значение 131072Единицы измерения байты Размер блока 1024Размер в байтах, на который увеличивается пул памяти на транзакцию, которому требуется память. См. описание
transaction_prealloc_size.
-
Формат командной строки --transaction-isolation=nameСистемная переменная transaction_isolationОбласть действия Глобальная, Сеанс Динамическая Да SET_VARПрименяется ли подсказкаНет Тип Перечисление Значение по умолчанию REPEATABLE-READДопустимые значения READ-UNCOMMITTEDREAD-COMMITTEDREPEATABLE-READSERIALIZABLEУровень изоляции транзакций. По умолчанию используется
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 SESSIONvar_name=value; SETvar_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Область действия Глобальная, Сеанс Динамическая Да 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[={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 SESSIONvar_name=value; SETvar_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Область действия Глобальная, Сессия Динамическая Да SET_VARПрименяется подсказкаДа Тип Булево Значение по умолчанию ONЕсли установлено в 1 (значение по умолчанию), проверки уникальности для вторичных индексов в таблицах
InnoDBвыполняются. Если установлено в 0, СУБД разрешается считать, что дубликаты ключей отсутствуют в входных данных. Если вы точно знаете, что ваши данные не содержат нарушений уникальности, вы можете установить это значение в 0, чтобы ускорить импорт больших таблиц вInnoDB.Установка этой переменной в 0 не требует от СУБД игнорировать дубликаты ключей. СУБД по-прежнему разрешается проверять их и выдавать ошибки дублирования ключей, если они обнаружены.
-
Формат командной строки --updatable-views-with-limit[={OFF|ON}]Системная переменная updatable_views_with_limitОбласть действия Глобальная, Сессия Динамическая Да SET_VARПрименяется подсказкаДа Тип Булево Значение по умолчанию 1Эта переменная управляет возможностью обновления представления, когда представление не содержит все столбцы первичного ключа, определенного в базовой таблице, если оператор обновления содержит предложение
LIMIT. (Такие обновления часто генерируются инструментами графического интерфейса). Обновление — это операторUPDATEилиDELETE. Первичный ключ здесь означаетPRIMARY KEYили индексUNIQUE, в котором ни один столбец не может содержатьNULL.Переменная может принимать два значения:
1илиYES: Выдавать только предупреждение (не сообщение об ошибке). Это значение по умолчанию.0илиNO: Запретить обновление.
-
Системная переменная use_secondary_engineОбласть действия Сессия Динамическая Да SET_VARПрименяется подсказкаДа Тип Перечисление Значение по умолчанию ONДопустимые значения OFFONFORCEDДля будущих применений.
Определяет, нужно ли выполнять запросы с помощью вторичного движка.
Для использования с HeatWave. Смотрите Руководство пользователя HeatWave.
-
validate_password.xxxКомпонент
validate_passwordреализует набор системных переменных с именами в форматеvalidate_password.. Эти переменные влияют на тестирование паролей этим компонентом; см. Раздел 8.4.3.2, «Параметры и переменные проверки паролей».xxx -
Номер версии сервера. Значение также может включать суффикс, указывающий информацию о сборке или конфигурации сервера.
-debugуказывает, что сервер был собран с включенной поддержкой отладки.
-
Переменная системы version_commentОбласть Глобальная Динамическая Нет SET_VARПрименяется ли подсказкаНет Тип Строка Программа конфигурации CMake имеет опцию
COMPILATION_COMMENT_SERVER, которая позволяет указать комментарий при построении MySQL. Эта переменная содержит значение этого комментария. -
Переменная системы version_compile_machineОбласть Глобальная Динамическая Нет SET_VARПрименяется ли подсказкаНет Тип Строка Тип двоичного файла сервера.
-
Переменная системы version_compile_osОбласть Глобальная Динамическая Нет SET_VARПрименяется ли подсказкаНет Тип Строка Тип операционной системы, на которой был построен MySQL.
-
Переменная системы version_compile_zlibОбласть Глобальная Динамическая Нет SET_VARПрименяется ли подсказкаНет Тип Строка Версия подключенной библиотеки
zlib. -
Формат командной строки --wait-timeout=#Переменная системы wait_timeoutОбласть Глобальная, Сессия Динамическая Да SET_VARПрименяется ли подсказкаНет Тип Целое число Значение по умолчанию 28800Минимальное значение 1Максимальное значение (Windows) 2147483Максимальное значение (Другие) 31536000Единица измерения секунды Количество секунд, в течение которого сервер ожидает активности по неинтерактивному соединению перед его закрытием.
При запуске потока значение сессии
wait_timeoutинициализируется из глобального значенияwait_timeoutили глобального значенияinteractive_timeout, в зависимости от типа клиента (как определено параметром подключенияCLIENT_INTERACTIVE). См. такжеinteractive_timeout. -
Количество ошибок, предупреждений и заметок, возникших в результате последнего оператора, сгенерировавшего сообщения. Эта переменная только для чтения. См. Раздел 15.7.7.42, “Выполнение команды SHOW WARNINGS”.
-
Формат командной строки --windowing-use-high-precision[={OFF|ON}]Переменная системы windowing_use_high_precisionОбласть Глобальная, Сессия Динамическая Да SET_VARПрименяется ли подсказкаДа Тип Булево Значение по умолчанию ONВычислять ли операции с окнами без потери точности. См. Раздел 10.2.1.21, “Оптимизация функций окон”.
-
Формат командной строки --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”.
© 2025 Oracle
Licensed under the GPLv2 License.