IT/SQL

[mariadb] 이벤트 스케줄러 관련 상태확인, created문 메모

월공 2022. 1. 1. 08:50
728x90
300x250

환경 : Centos8, MariaDB10.5.13

 

이벤트 스케쥴러 작성 후에 정상적으로 작동하지 않는 문제가 있어서 찾아보니 결국은 event_scheduler 상태가 NO 로 되어있었다.

#조회
SELECT @@global.event_scheduler;

그때 분명히 쿼리로 SET GLOBAL event_scheduler = ON; 실행을해서 ON 을해줬는데 왜 갑자기 OFF 가 됐을까 ..?

중간에 DB 재시작된적이 있었나 .. 여튼 이번엔 그냥 mysql config 파일에다가 확실히 명시를 해주었다.

 

my.cnf 가 어디있는지 모르겠으면 그냥 리눅스에서 검색해서 찾자

 find / -name "my.cnf"

나의 경우엔 /etc/mf.cnf 이었다.

 

찾아보니 [mysql] 밑에다가 추가해주라길래 추가해주고 재시작후에 다시 mariadb 접속하려니까

mysql: unknown variable 'event_scheduler=ON' 라는 에러가 떨어져서 [mysqld]로 옮기니까 잘되는것을 확인했다.

cnf 수정후엔 재시작 꼭 잊지말자,

그리고 cnf 는 내가 수정한곳 정확히 기억해둘수 있는거 아니면 백업해두는것도 잊지말자 고생한다..

# vi /etc/my.cnf

[client-server]

[client]
default-character-set = utf8

생략 ...

[mysqld]
event_scheduler=ON



생략 ...

 

아래는 이벤트 관련하여 요긴하게 쓰였던 쿼리 메모

#현재 event_scheduler 상태 조회
SELECT @@global.event_scheduler;

#목록 조회
SHOW PROCESSLIST;

SELECT * FROM INFORMATION_SCHEMA.events;

# 이렇게 하는것보단 /etc/my.cnf 에서 추가해서 재시작하는걸 권장
SET GLOBAL event_scheduler = ON;

#이벤트 Create 문

CREATE DEFINER=`DB명`@`%` EVENT `이벤트명`
	ON SCHEDULE
		EVERY 1 MONTH STARTS '2022-01-01'
	ON COMPLETION PRESERVE
	ENABLE
	COMMENT '매월 1일 이벤트 발동하고 싶을때 '
	DO [쿼리 들어감]
728x90
300x250