MySQL переменные через SET GLOBAL

В MySQL глобальные переменные определяются в файле /etc/my.cnf или в консоли сервера баз данных командой set global. В последнем случае изменения применяются сразу и  перезагрузка не требуется.

 

 

MySQL глобальные переменные (set global)

В MySQL существует переменная, задающая максимальное количество подключений от имени одного пользователя — max_connections.

 

Если лимит недостаточно большой, при этом код сайта написан таким образом, что генерирует большое количество запросов к базе при обращении к сайту можно увидеть ERROR 1040 (08004): Too many connections.

 

Ошибка означает, что лимит превышен. Дальнейшая обработка запросов при этом невозможна.

 

Если код сайта работает с MySQL не от имени пользователя root лимит можно поменять «на ходу»

SET GLOBAL max_connections = 600;

 

Сайт всегда должен использовать реквизиты пользователя, отличного от root. Чтобы выполнить команду нужно подключиться к MySQL, даже если для какого-то пользователя подключение невозможно, его может выполнить root.

 

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

/etc/init.d/mysq restart

 

Перезапуск приемлем, но в некоторых случаях не желателен. В какую-то таблицу в момент перезапуска может записываться информация , или удаляться из нее.

Перезапуск — завершение процесса, которое может повлечь повреждение таблиц и частичную потерю данных.

 

 

В MySQL глобальные переменные позволяют вносить изменения для всего сервера без перезапуска

 

На практике если нужно изменить значение какой-то переменной лучше использовать SET GLOBAL, то же значение при этом установить в конфигурационном файле.

 

SET GLOBAL устанавливает значение параметров для сервера до перезапуска.

Когда перезапуск произойдет конфигурация в /etc/my.cnf считается и состояние MySQL вернется к тому, что было до рестарта.

 

 

При использовании SET GLOBAL регист не имеет значения. Команды можно выполнять как в верхнем, так и в нижнем регистре.

 

В статье про тюнинг MySQL, среди прочего, показано как посмотреть актуальные значения переменных.