Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 이벤트 스케줄러 시작하는 방법

MySQL 이벤트 스케줄러란?

MySQL 이벤트 스케줄러(Event Scheduler)는 백그라운드에서 상시 실행되며, 등록된 이벤트가 실행될 시간이 되었는지 끊임없이 감시하는 프로세스입니다. 이벤트를 생성하거나 예약하기 전에 반드시 스케줄러를 먼저 활성화해야 합니다.

이벤트 스케줄러 시작하기

아래 문장을 실행하면 이벤트 스케줄러를 시작할 수 있습니다.

mysql> SET GLOBAL event_scheduler = ON;
Query OK, 0 rows affected (0.07 sec)

스케줄러 실행 상태 확인

스케줄러가 정상적으로 동작 중인지는 MySQL 프로세스 목록에서 확인할 수 있습니다.

mysql> SHOW PROCESSLIST\G
*************************** 1. row ***************************
     Id: 3
   User: root
   Host: localhost:49500
     db: query
Command: Query
   Time: 0
  State: starting
   Info: SHOW PROCESSLIST
*************************** 2. row ***************************
     Id: 4
   User: event_scheduler
   Host: localhost
     db: NULL
Command: Daemon
   Time: 11
  State: Waiting on empty queue
   Info: NULL
2 rows in set (0.06 sec)

프로세스 목록에 Userevent_scheduler이고 CommandDameon인 항목이 보이면 스케줄러가 정상적으로 구동된 것입니다. 'Waiting on empty queue' 상태는 현재 실행 대기 중인 이벤트가 없다는 의미입니다.

또한 다음 쿼리로 간단하게 스케줄러의 활성화 여부를 확인할 수도 있습니다.

mysql> SELECT @@event_scheduler;

이벤트 스케줄러 중지하기

더 이상 스케줄러가 필요하지 않다면 아래 문장으로 종료할 수 있습니다.

mysql> SET GLOBAL event_scheduler = OFF;
Query OK, 0 rows affected (0.07 sec)

서버 재시작 시에도 유지하는 방법

SET GLOBAL로 변경한 설정은 MySQL 서버를 재시작하면 초기화됩니다. 재시작 후에도 스케줄러를 자동으로 활성화하려면 설정 파일(my.cnf 또는 my.ini)의 [mysqld] 섹션에 다음과 같이 추가해야 합니다.

[mysqld]
event_scheduler=ON