MySQL & mSQL


Системные переменные MySQL


Переменные окружения MySQL

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

MY_BASEDIR

MY_BASEDIR_VERSION

Корневой каталог, содержащий подкаталоги 'bin', 'var' и 'libexec' программы и данные MySQL. Если этой переменной не существует, используется значение по умолчанию (обычно записанное в MySQL как /usr/local). Эти настройки влияют только на программу mysqld.

MYSQL_DEBUG

Уровень отладки программы (отладочный уровень). Эта переменная может быть использована с любой программой MySQL. Отладочная библиотека MySQL имеет множество настроек. Список всех доступных опций находится по адресу: http://www.turbolift.com/ туsql/appendixC.html. Самый обычный набор параметров - d: t: о, / tmp/debugfile.

MYSQL_HOST

Имя хоста, используемое для связи с удаленным сервером MySQL. Опция может быть использована с любой из клиентских программ MySQL (mysql, mysqlshow, mysqladmin и т. д.).

MYSQL_PWD

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

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

MYSQL_TCP_PORT



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


MYSQL_UNIX_PORT

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

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

EDITOR VISUAL

Путь к заданному по умолчанию редактору. Программа mysql будет использовать его для редактирования SQL-операторов, если ей встретится команда edit или \е.

HOME

Домашний каталог текущего пользователя. LOGIN LOGNAME USER

Имя текущего пользователя.

PATH

Список каталогов, используемых при поиске программ.

POSIXLY_CORRECT

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

ТМР TMPDIR

Каталог, в котором сохраняются временные файлы. Если эта переменная не определена, используется '/tmp '.

TZ

Часовой пояс локальной машины.

UMASK

Маска, используемая при создании новых файлов.

Переменные командной строки

Данные параметры определяются через опции командной строки -0 или -set-variable, которые доступны в большинстве программ MySQL.

back_log

Число подключений TCP, которые могут быть поставлены в очередь за один раз. Значение по умолчанию - 5. Эта опция доступна только для mysqld.

connect _timeout

Время (в секундах), в течение которого сервер mysqld ожидает пакет подключения, прежде чем ответить сообщением об ошибке соединения (bad handshake).

decode-bits

Число бит, используемое для генерирования некоторых внутренних таблиц. Число должно находиться в диапазоне от 4 до 9 (между 4 и 6 в 16-разрядных операционных системах). Значение по умолчанию - 9. Эта опция доступна только для isamchk. Используйте ее лишь при условии, что вы хорошо понимаете структуру таблицы ISAM.



delayed_insert_limit

Заставляет обработчик INSERT DELAYED проверять наличие команд SELECT, задержанных при вставке числа записей, указанного в delayed _insert_limit. Если таковые есть, обработчик позволяет выполнить эти команды перед продолжением работы.

delay ed_insert_timeout

Как долго поток INSERT DELAYED должен ожидать операцию INSERT перед завершением.

delayed_queue_size

Размер очереди (в записях) для обработки INSERT DELAYED. Если очередь переполняется, все клиенты, выполнившие INSERT DECAYED, снова будут ждать, пока появится место в очереди.

dritebuffer

Размер буфера, используемый для хранения исходящих данных. Значение по умолчанию - 260 Кбайт. Эта переменная доступна только для isamchk.

flush_time

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

join_buffer

Размер буфера при выполнении соединения таблиц. Увеличение параметра может повысить производительность запросов, использующих соединение таблиц. Значение по умолчанию — 130 Кбайт. Эта опция доступна только для mysqld.

key_buffer_size

Размер буфера, выделенного для хранения ключей (индексов), к которым недавно осуществлялся доступ. Увеличение этого значения может привести к увеличению скорости работы запросов, осуществляющих повторное использование одних и тех же индексов. Эта опция доступна только для isamchk (где значение по умолчанию равно 0.5 Мбайт) и mysqld (значение по умолчанию 1 Мбайт).

long_query_time

Если значение установлено, то slow_queries увеличивается всякий раз, когда запрос занимает больше времени, чем определено в переменной long_query_time (в секундах).

max_allowed_packet

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

max_connect_errors

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



max_Connections

Максимальное число одновременных клиентских подключений. Значение по умолчанию - 90. Эта опция может использоваться только с mysqld.

max_delayed_threads

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

max_join_size

Максимальный размер временной таблицы, создаваемой при соединении таблиц. Значение по умолчанию - 4 Гбайт. Эта опция может использоваться только с mysqld.

max_sort_length

Максимальное число символов, используемое при сортировке полей BLOB либо VARCHAR. Значение по умолчанию 1 Кбайт.

max_tmp_tables

(Будет реализовано позднее в версии 3.23.) Максимальное количество временных таблиц, которое клиент может открыть одновременно.

net_buffer_length

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

По умолчанию его размер равен 8 Кбайт. Опция доступна для mysql, mysqld и mysqldump.

readbuffer

Размер буфера, используемого для хранения читаемых из файла данных. Значение по умолчанию 260 Кбайт. Опция доступна только для isamchk.

record_buffer

Размер буфера, используемого при чтении данных прямо из таблиц, (то есть без использования ключей). Увеличение этого значения может повысить скорость выполнения запросов, не использующих индексы (ключи). По умолчанию значение равно 130 Кбайт. Этот параметр доступен только для mysqld.

sortbuffer

Размер буфера, используемого при сортировке данных из таблиц. Значение по умолчанию 1 Мбайт. Опция доступна только для isamchk.

sort_buffer

Размер буфера, используемого при сортировке выбранных данных. Увеличение его размера может повысить скорость выполнения запросов, использующих ORDER BY или GROUP BY. По умолчанию значение равно 2 Мбайт. Эта опция доступна только для mysqld.

sort_key_blocks

Число блоков ключей (индексных блоков), используемых при сортировке ключей. Значение по умолчанию 16. Эта опция доступна только для isamchk, пользуйтесь ей, если вы хорошо понимаете структуру таблицы ISAM.



table_cache

Максимальное число таблиц, которое сервер баз данных может держать открытым одновременно. По умолчанию это 64 таблицы. Опция доступна только для mysqld.

tmp_table_size

Максимальный размер временных таблиц, используемых сервером баз данных. Значение по умолчанию - 1 Мбайт. Эта опция доступна только для mysqld.

thread_stack

Размер стека памяти для каждого потока. Значение по умолчанию -64 Кбайт. Эта опция доступна только для mysqld.

wait_timeout

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

Файл конфигурации MySQL

Начиная с MySQL 3.22, вы можете указать и серверные, и клиентские настройки в текстовом файле конфигурации. Файл имеет разные значения в зависимости от места расположения, но его формат всегда един. Если он хранится в /etc/my.cnf, настройки применяются ко всем серверам MySQL и клиентам на этой машине. Если файл находится в каталоге данных сервера MySQL (например, /usr/local/mysql/data/ my.cnf), то настройки действительны именно для этого сервера MySQL. Наконец, если файл назван .my.cnf (обратите внимание наточку в начале) и расположен в домашнем каталоге пользователя, он применяется ко всем клиентам, запускаемым этим пользователем.

Формат файла конфигурации похож на формат файлов инициализации Windows. Файл разбит на абзацы (строфы) с групповым именем, заключенным в скобки. После имени группы идет список параметров. Строки комментария начинаются символом «#» или «; ». Каждое имя группы - это название клиентской или серверной программы MySQL, для которой необходимо определить настройки. Специальное групповое имя client, влияет на все клиентские программы MySQL (кроме mysqld).

Задаваемые в этом файле параметры могут быть любой длины. Они имеют ту же форму, что и параметры к любой команде MySQL, заданные из командной строки (кроме идентификатора параметров «-» (двойная черта)). Ниже приведен пример файла my.cnf для всего сервера.

[client]

port=9999

socket=/dev/mysql

[mysqld]

port=9999

socket=/dev/mysql

set-variable = join_buffer=1M

[mysql]

host=dbhost

unbuffered




Содержание раздела