Spec-Zone .ru
спецификации, руководства, описания, API
|
События выполняются потоком планировщика специального мероприятия; когда мы
обращаемся к Планировщику События, мы фактически обращаемся к этому потоку. Работая, поток планировщика события
и его текущее состояние могут быть замечены пользователями, имеющими PROCESS
полномочие в выводе SHOW PROCESSLIST
, как показано в обсуждении, которое следует.
Глобальная переменная event_scheduler
системная переменная определяет, включается ли Планировщик
События и работа сервера. У этого есть одно из этих 3 значений, которые влияют на планирование событий как
описано здесь:
OFF
: Планировщик События останавливается. Поток
планировщика события не работает, не показывается в выводе SHOW PROCESSLIST
, и никакие запланированные события не выполняются.
OFF
значение по умолчанию для event_scheduler
.
Когда Планировщик События останавливается (event_scheduler
OFF
), это может быть
запущено, устанавливая значение event_scheduler
к ON
. (См. следующий
элемент.)
ON
: Планировщик События запускается; поток планировщика
события выполняет и выполняет все запланированные события.
Когда Планировщик События ON
, поток планировщика события перечисляется
в выводе SHOW PROCESSLIST
как процесс демона, и его состояние представляется как показано здесь:
mysql> SHOW PROCESSLIST\G
*************************** 1. row *************************** Id: 1 User: root Host: localhost db: NULLCommand: Query Time: 0 State: NULL Info: show processlist*************************** 2. row *************************** Id: 2 User: event_scheduler Host: localhost db: NULLCommand: Daemon Time: 3 State: Waiting for next activation Info: NULL2 rows in set (0.00 sec)
Планирование событий может быть остановлено, устанавливая значение event_scheduler
к OFF
.
DISABLED
: Это значение представляет не влияющего на
эксплуатацию Планировщика События. Когда Планировщик События DISABLED
,
поток планировщика события не работает (и так не появляется в выводе SHOW PROCESSLIST
). Кроме того, состояние Планировщика События не
может быть изменено во времени выполнения.
Если состояние Планировщика События не было установлено в DISABLED
, event_scheduler
может быть переключен между ON
и
OFF
(использование SET
). Также возможно использовать 0
для OFF
, и 1
для ON
устанавливая эту переменную. Таким образом любой из следующих 4 операторов может использоваться в mysql клиенте, чтобы включить Планировщика События:
SET GLOBAL event_scheduler = ON;SET @@global.event_scheduler = ON;SET GLOBAL event_scheduler = 1;SET @@global.event_scheduler = 1;
Точно так же любой из этих 4 операторов может использоваться, чтобы выключить Планировщика События:
SET GLOBAL event_scheduler = OFF;SET @@global.event_scheduler = OFF;SET GLOBAL event_scheduler = 0;SET @@global.event_scheduler = 0;
Хотя ON
и OFF
имейте числовые эквиваленты, значение,
выведенное на экран для event_scheduler
SELECT
или SHOW
VARIABLES
всегда один из OFF
, ON
, или
DISABLED
. DISABLED
не имеет
никакого числового эквивалента. Поэтому ON
и OFF
обычно предпочитаются 1
и 0
устанавливая эту
переменную.
Отметьте ту попытку установить event_scheduler
не определяя это, поскольку глобальная переменная вызывает
ошибку:
mysql< SET @@event_scheduler =
OFF;
ERROR 1229 (HY000): Variable 'event_scheduler' is a GLOBALvariable and should be set with SET GLOBAL
Возможно установить Планировщика События в DISABLED
только при запуске
сервера. Если event_scheduler
ON
или OFF
, невозможно установить это в DISABLED
во
времени выполнения. Кроме того, если Планировщик События устанавливается в DISABLED
при запуске невозможно изменить значение event_scheduler
во времени выполнения.
Чтобы отключить планировщика события, используйте один из следующих двух методов:
Как параметр командной строки, запуская сервер:
--event-scheduler=DISABLED
В конфигурационном файле сервера (my.cnf
, или my.ini
на системах Windows), включайте строку, где она будет считана
сервером (например, в a [mysqld]
раздел):
event_scheduler=DISABLED
Чтобы включить Планировщику События, перезапустите сервер без --event-scheduler=DISABLED
параметр командной строки, или после удаления или
комментирования строки, содержащей event-scheduler=DISABLED
в конфигурационном файле сервера, как
соответствующий. Альтернативно, можно использовать ON
(или 1
) или OFF
(или 0
)
вместо DISABLED
оцените, запуская сервер.
Можно сделать заявления манипулирования события когда event_scheduler
устанавливается в DISABLED
.
Никакие предупреждения или ошибки не сгенерированы в таких случаях (при условии, что операторы
самостоятельно допустимы). Однако, запланированные события не могут выполниться, пока эта переменная не
устанавливается в ON
(или 1
). Как только это было
сделано, поток планировщика события выполняет все события, условия планирования которых удовлетворяются.
Запуск сервера MySQL с --skip-grant-tables
причины опции event_scheduler
быть установленным в DISABLED
,
переопределение любого другого набора значений или на командной строке или в my.cnf
или my.ini
файл (Ошибка #26807).
Для SQL-операторов, используемых, чтобы создать, изменитесь, и отбросьте события, см. Раздел 18.4.3, "Синтаксис События".
MySQL 5.7 обеспечивает EVENTS
таблица в INFORMATION_SCHEMA
база данных. Эта таблица может быть запрошена, чтобы
получить информацию о запланированных событиях, которые были определены на сервере. См. Раздел
18.4.4, "Метаданные События", и Раздел
19.7," INFORMATION_SCHEMA EVENTS
Таблица", для получения
дополнительной информации.
Для получения информации относительно планирования событий и системы полномочия MySQL, см. Раздел 18.4.6, "Планировщик События и MySQL Privileges".