Spec-Zone.ru › MySQL 5.7

4.2.2.5 Использование опций для установки переменных программы

Многие программы MySQL имеют внутренние переменные, которые можно установить во время выполнения, используя оператор SET. См. Раздел 13.7.4.1, «Синтаксис SET для присваивания переменных» и Раздел 5.1.8, «Использование системных переменных».

Большинство этих переменных программы также можно задать при запуске сервера, используя тот же синтаксис, что применяется для указания опций программы. Например, у mysql есть переменная max_allowed_packet, которая контролирует максимальный размер буфера обмена. Чтобы установить переменную max_allowed_packet для mysql на значение 16 МБ, используйте одну из следующих команд:

mysql --max_allowed_packet=16777216
mysql --max_allowed_packet=16M

Первая команда указывает значение в байтах. Вторая команда указывает значение в мегабайтах. Для переменных, принимающих числовое значение, значение можно указать с суффиксом K, M или G (как в верхнем, так и в нижнем регистре) для указания множителя 1024, 10242 или 10243 соответственно. (Например, при использовании для установки max_allowed_packet, суффиксы обозначают единицы килобайт, мегабайт или гигабайт.)

В файле опций настройки переменных указываются без ведущих дефисов:

[mysql]
max_allowed_packet=16777216

Или:

[mysql]
max_allowed_packet=16M

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

[mysqld]
key_buffer_size=512M

[mysqld]
key-buffer-size=512M

В более ранних версиях MySQL опции программы можно было указывать полностью или как любой однозначно определяемый префикс. Например, опцию --compress можно было передать mysqldump как --compr, но не как --comp, так как последнее является неоднозначным. В MySQL 5.7 префиксы опций больше не поддерживаются; принимаются только полные опции. Это связано с тем, что префиксы могут создавать проблемы при внедрении новых опций для программ, а префикс, который в настоящее время однозначен, может стать неоднозначным в будущем. Некоторые последствия этого изменения:

  • Опцию --key-buffer теперь необходимо указывать как --key-buffer-size.

  • Опцию --skip-grant теперь необходимо указывать как --skip-grant-tables.

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

$> mysql --max_allowed_packet=16M
$> mysql --max_allowed_packet=16*1024*1024

И наоборот, вторая из следующих строк допустима во время выполнения, но первая — нет:

mysql> SET GLOBAL max_allowed_packet=16M;
mysql> SET GLOBAL max_allowed_packet=16*1024*1024;

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/program-variables.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API