su13@pochta.ru

| Первый | Второй | Третий | Четвёртый | Пятый | Шестой | Седьмой |


Глава №16.

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

Для настройки работы 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

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

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

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

Следующие переменные являются специальными переменными программ mSQL. Они могут быть определены в текущей оболочке или являться частью сценария оболочки.

MSQL_DEBUG

Отладочный уровень программы. Число от 0 (нет отладочной информации) до 3 (максимум отладочной информации).

MSQL_CONF_FILE

Путь к файлу конфигурации mSQL.

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

USER

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

EDITOR

VISUAL

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

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

Файл конфигурации mSQL содержит значения некоторых переменных, которые влияют на работу программ mSQL. По умолчанию он находится в /usr/local/Hughes/msql.conf. Можно изменить это значение в переменной окружения MSQL_CONF_FILE. Файл конфигурации начинается с имени группы, за которым идут переменные этой группы. Ниже пример файла msql.conf:

[general]

Inst_Dir = /usr/local/Hughes

mSQL_User = msql

Admin_User = root

Pid_File = %I/msql2d.pid

TCP_Port =1114

UNIX_Port = %I/msql2.sock

[system]

Msync_Timer = 30 Host_Lookup = True Read_0nly = False

[w3-msql]

Auth_Host = NULL Footer = True Force_Private = False

Секция general влияет на работу всех программ mSQL, сервер баз данных msqld использует секцию system, и секция w3-msql используется системой W3-mSQL, обеспечивающей взаимодействие базы данных с WWW. Когда mSQL читает файлы конфигурации, он заменяет символы %1 на путь к установленной копии mSQL на сервере. Ниже представлены возможные переменные для каждой секции.

general

Admin_User

Имя учетной записи, которой позволено вносить изменения в базу данных mSQL в целом. По умолчанию это root.

Inst_Dir

Расположение mSQL. Каждый раз, когда в файле конфигурации встречается символы %1, они заменяются значением данной переменной. Значение по умолчанию - /usr/local/Hughes.

mSQL_User

Имя учетной записи, под которой работает демон сервера mSQL. По умолчанию это msql.

Pid_File

Расположение файла, содержащего ID процесса (PID) работающего демона mSQL. По умолчанию - %I/msql2d. pid.

TCP_Port

В случае программы клиента это номер TCP-порта, используемого для подключения к серверу, для msql2d - это порт, прослушивающий входящие подключения. Значение по умолчанию - 1114.

UNIX_Port

Имя файла сокета Unix, используемого для подключения к локальному серверу mSQL (в случае клиентских приложений) либо для обработки локальных подключений (в случае с msql2d). Значение по умолчанию - %I/msql2. sock.

system

Host_Lookup

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

Msync_timer

Интервал (в секундах) синхронизации используемых данных, находящихся в RAM, с данными на диске.

Read_Only

Если значение этой переменной установлено в 'True', не допускается изменение базы данных. Разрешены только запросы SELECT.

w3-msql

Auth_Host

Имя хоста, содержащего сервер БД с таблицами W3-Auth. Если значение установлено в NULL либо не указано, используется локальный сервер.

Footer

Если установлено значение 'True', к каждой странице будет применяться стандартный нижний колонтитул Hughes Technologies.

Force_Private

При значении 'True' через W3-mSQL может быть получен доступ только к защищенным W3-Auth страницам. В результате не допускается обработка обычных HTML-файлов через W3-mSQL.

Оглавление

GNU OCXE GNU LINUX
Hosted by uCoz