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

Пал смертью храбрых
Выполняемый процесс никогда не останавливается моментально, при получении команды KILL. MySQL помечает данный процесс своеобразной "черной меткой" (kill flag) и закрывает его, как только прекращается выполнение операций. Этот метод считается гораздо более "гуманным" и безопасным. Выполняемый процесс все­гда проверяет наличие метки перед следующей операцией.

Использование конфигурационного файла
Самый рекомендуемый метод настройки параметров MySQL - это использование конфигурационного файла. Это ASCII-файл, содержащий в себе переменные, которые считываются сервером при загрузке. MySQL обращается к этому файлу на некоторых этапах загрузки.
■ ОС Windows. При запуске MySQL просматривает конфигурационный файл my.cnf, который находится в инсталляционном каталоге Windows по адресу C:my.cnf. Конечно, вы можете переместить этот файл в каталог Windows (C:WINNT или C:WINDOWS), как и файл my.ini (но это следует делать только в крайнем случае).
■ ОС UNIX. MySQL во время запуска ищет настройки запуска в каталогах /etc/ my.cnf и -/.my.cnf, а также в файле my.cnf, который находится в справочнике данных MySQL.

Совет
Вы также можете указать MySQL, чтобы при старте программа искала параметры запуска в нескольких местах, задав имя файла в параметр - -default-files в ко­мандной строке.
Листинг 13.20.
[mysqld] port= 3306 skip-locking log-bin skip-bdb

Один за всех! Или все за одного!
Все программы, поставляемые с MySQL (не только mysqld), могут брать параметры из конфигурационного файла. Задайте в конфигурационном файле имя программы как группу (т.е. взяв его в круглые скобки) и делайте с ним все, что хотите, настраивайте согласно вашим задачам. Клиентские программы MySQL могут потребовать указания специальной группы [client] , которая используется для хранения параметров подключения пользователя. Например:
[client] user=timothy password=greenpeas

На заметку
Для того чтобы найти примеры конфигурационных файлов, загляните в файлы my-large.cnf, my-huge.cnf, my-medium.cnf и my-small.cnf, и вы поймете, как можно эти файлы использовать.
Обычно MySQL просматривает группы [mysql] и [mysqld] , чтобы получить пара­метры конфигурации. Если вы для запуска MySQL на UNIX используете сценарий mysqld_safe, то для передачи параметров в MySQL вы сможете использовать группу [mysqld_safe] .
В этом случае, при попытке подключения к серверу клиента mysql, он подключится как пользователь под именем timothy и с паролем greenpeas. В табл. 13.2 представле­ны самые полезные параметры настройки MySQL. (Для более детальной информации обратитесь к инструкции по MySQL.)
Как изменить настройки сервера
Как изменить настройки сервера
Все эти параметры могут быть введены с командной строки, но еще нужно в качестве префикса добавить двойное тире.
Листинг 13.21.
[root@host]# /usr/local/mysqld_safe -socket=/usr/tmp/mysql.docket -user=mysql -skip-networking &
Starting mysqld daemon with databases from /usr/local/mysql/data
Если существует несколько конфигурационных файлов или один и тот же параметр задан несколько раз с различными значениями, то MySQL использует только последнее значение. Поскольку MySQL сначала обращается к конфигурационному файлу, а затем считывает командную строку, это означает, что параметры, заданные в командной строке, имеют преимущество перед параметрами, заданными в конфигурационном файле.
Использование команды set
С помощью команды SET можно изменять параметры системы и соединения при ра­ботающем сервере.
Листинг 13.22.
SET variable = value, variable = value, ...
Вот пример, в котором показано, как с помощью команды SET можно установить тип таблицы.
Листинг 13.23.
mysql> SET table_type = innodb;
Query OK, 0 rows affected (0.00 sec)
Изменения, осуществляемые с помощью команды SET, могут быть установлены или для всех сеансов, или только для одного текущего сеанса. После того как вы указали SET, вы должны написать GLOBAL или SESSION. Ниже приведен пример, в котором показано, как количество пользователей ограничивается до 10 (до 10 подключений в любой момент времени) и размер буфера считывания устанавливается равным 250 Кбайт.
Листинг 13.24.
mysql> SET GLOBAL max_user_connections = 10, SESSION read_buffer_size = 250000;
Query Ok, 0 rows affected (0.08 sec) 

Заметим, что для задания переменных GLOBAL требуется привилегия SUPER. О ней можно узнать больше в главе 14, "Безопасность, управление доступом и привилегии".
Кто там?
Если система установлена на одном компьютере с сервером MySQL, и вы уста­новили --skip-networking, соответственно, никто не сможет получить доступ к вашей системе через TCP/IP, что значительно повышает безопасность установки MySQL. '
Как изменить настройки сервера
В таблице 13.3 представлены важные переменные, которые активизируются с помо­щью команды SET (см. инструкцию по MySQL, а также главу 16, "Оптимизация произ­водительности"