#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 для присвоения значения переменной используется оператор :=, а не =.
Комментариев нет:
Отправить комментарий