MySQL. Конфигурирование сервера

Вообще говоря, конфигурирование сервера – задача эмпирическая. Настроек очень много и все их нужно подбирать под конкретную задачу, работу того или иного приложения, железа и так далее. В данном посте посмотрим на основы – как это делать в принципе и какие трудности могут возникнуть в связи с этим?

Я экспериментировал с системой Windows 8.1 на ноутбуке, у меня установлена версия MySQL Server 5.5. Все настройки находятся в файле my.ini


C:\Program Files\MySQL\MySQL Server 5.5\my.ini


Проблема – файл не редактируется

Чтобы изменить хоть что-то в этом файле, нужно обладать правами администратора. И хотя у меня были права администратора под текущей учетной записью, изменить в этом файле у меня все равно ничего не получилось, пока я не зашел под ролью “Администратор”. В Windows 8.1 она по умолчанию отключена.

Решение. Включить права администратора в Windows 8.1

Жмем “Win+X“, в выплывающем меню выбираем “Командная строка (администратор)“, далее, для включения роли администратора набираем команду

net user администратор /active:yes

для отключения роли администратора

net user администратор /active:no

Открываем файл my.ini

В my.ini мы найдем несколько секций с параметрами. Например, в моем файле я обнаружил

[client]

…параметры

[mysqld]

…параметры

[mysqld_safe]

…параметры

Секция [client] для клиентских программ, которые работают с базой. Секция [mysqld] это непосредственно сами настройки сервера. Секция [mysqld_safe] это настройки безопасного режима сервера (авто-перезагрузка при сбоях и так далее).

Сделаем что-нибудь полезное

Сделаем что-нибудь полезное, например увеличим значение max_allowed_packet до  значения 1000 МБ (из документации The maximum size of the buffer for client/server communication. The default is 16MB, the maximum is 1GB.). Часто mySQL падает из-за того, что на сервер отправляются слишком большие файлы, например BLOB, и его приходится перезапускать. Для того, чтобы избежать этой проблемы – увеличим значение данной переменной. Сделать это очень просто – добавим в файл my.ini  в секцию [mysqld] соответствующее значение.

max_allowed_packet=1000M

Таким образом, в файле my.ini мы можем написать следующее

Проверить, изменилось ли значение можно из консольного клиента mysql, набрав следующую команду

Установить их из консольного клиента можно следующим образом

Глобальные и сеансовые переменные

MySQL сервер поддерживает два типа переменных, глобальные и сеансовые.

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

Где взять полный список настроек сервера?

Официальная документация на английском языке

Русский вариант одного блогера

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