Страницы

Поиск по вопросам

понедельник, 13 апреля 2020 г.

Как сменить настройки my.ini/my.cnf динамически?

#sql #mysql

                    
Привет.
Посмотреть установленные настройки сервера можно командой
SHOW VARIABLES LIKE 'name_variable'

Какой командой можно сменить значение установленных переменных в файле my.ini?
Какой уровень привилегий позволяет это сделать?
Когда настройка вступить в силу(после перезапуска сервера или нет)?
Как создать свою глобальную переменную?
 SET uoi=90;

ERROR 1193 (HY000): Unknown system variable 'uoi'    


Ответы

Ответ 1



Сменить значение серверной переменной можно при помощи оператора SET, который вы привели в вопросе. Существует несколько вариантов его использования: SET GLOBAL init_connect='SET autocommit=0'; или SET @@init_connect='SET autocommit=0'; или SET init_connect='SET autocommit=0'; Не все пользователи могут изменять серверные переменные, нужно обладать привилегией SUPER, чтобы сервер позволил это сделать. Не все переменные можно изменять на лету при помощи SET. Уточнять список изменяемых переменных можно в документации. Если переменная обозначена как Dynamic - она может быть изменена при помощи SET, если в поле Dynamic стоит No - изменять ее можно либо на уровне конфигурационного файла, либо вообще нельзя (в последнем случае потребуется перезапуск сервера, или обновление данных конфигурационного файла). Создать собственную серверную переменную не получится - эти переменные отражение состояния сервера - придется программировать и пересобирать MySQL, чтобы ввести собственную серверную переменную. Однако, можно создать пользовательскую сессионную переменную. Такие переменные, в отличие от системных начинаются не с двух @@, а с одной. Для этого нужно либо воспользоваться оператором SET SET @uoi = 90; SELECT @uoi; +------+ | @uoi | +------+ | 90 | +------+ Либо задать ее в составе другого запроса, например, SELECT SELECT @oui := 100; Обратите внимание, что без оператора SET для присвоения значения переменной используется оператор :=, а не =.

Комментариев нет:

Отправить комментарий