Вообще говоря, конфигурирование сервера – задача эмпирическая. Настроек очень много и все их нужно подбирать под конкретную задачу, работу того или иного приложения, железа и так далее. В данном посте посмотрим на основы – как это делать в принципе и какие трудности могут возникнуть в связи с этим?
Я экспериментировал с системой 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 мы можем написать следующее
1 2 3 4 5 6 7 8 9 |
[mysqld] # <<< Секция в которой мы добавляем свои настройки, это секция сервера #....some text before ############# My settings ########### max_allowed_packet=1000M #...some text after |
Проверить, изменилось ли значение можно из консольного клиента mysql, набрав следующую команду
1 |
show global variables like 'max_allowed_packet'\g; |
Установить их из консольного клиента можно следующим образом
1 |
set global max_allowed_packet=10485760\g; |
Глобальные и сеансовые переменные
MySQL сервер поддерживает два типа переменных, глобальные и сеансовые.
- Глобальные переменные – инициализируются при старте MySQL сервера, получая значения по умолчанию.
- Сеансовые переменные – создаются для каждого соединения клиента с сервером и получают значения, установленные для глобальных переменных.
Где взять полный список настроек сервера?
Официальная документация на английском языке
Русский вариант одного блогера