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

MySQL 재시작 후에도 event_scheduler=ON 상태를 유지하는 방법

MySQL에서 SET GLOBAL event_scheduler = ON으로 이벤트 스케줄러를 활성화하면, 서버가 재시작될 때 설정이 초기화되어 다시 OFF로 돌아가는 문제가 발생합니다. 이 글에서는 MySQL을 재시작하더라도 전역 event_scheduler가 항상 ON 상태를 유지하도록 설정하는 방법을 알아보겠습니다.

현재 event_scheduler 상태 확인

먼저 시스템 변수 @@event_scheduler를 SELECT 문으로 조회하여 현재 상태를 확인할 수 있습니다.

mysql> select @@event_scheduler;

실행 결과:

+-------------------+
| @@event_scheduler |
+-------------------+
| ON                |
+-------------------+
1 row in set (0.00 sec)

MySQL 재시작 후 설정 확인

이제 MySQL을 재시작해 보겠습니다.

mysql> restart;
Query OK, 0 rows affected (0.00 sec)

서버가 재시작되는 동안에는 연결이 잠시 끊기며, 이때 쿼리를 실행하면 다음과 같은 오류 메시지가 나타납니다.

mysql> select @@event_scheduler;
ERROR 2013 (HY000): Lost connection to MySQL server during query

잠시 후 다시 @@event_scheduler 변수를 조회하면 클라이언트가 자동으로 재접속하면서 여전히 ON 상태임을 확인할 수 있습니다.

mysql> select @@event_scheduler;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 8
Current database: *** NONE ***
+-------------------+
| @@event_scheduler |
+-------------------+
| ON                |
+-------------------+
1 row in set (0.04 sec)

설정 파일(my.cnf / my.ini)에 등록하는 방법

재시작 후에도 event_scheduler가 항상 ON으로 유지되도록 하려면 MySQL 설정 파일인 my.cnf(Linux/Unix 계열) 또는 my.ini(Windows)의 [mysqld] 섹션에 다음과 같이 추가합니다.

[mysqld]
event_scheduler = ON

설정 파일을 수정한 후 MySQL을 재시작하면 변경 사항이 적용됩니다. 이렇게 하면 서버가 몇 번을 재시작하더라도 event_scheduler는 항상 ON 상태로 유지됩니다.

참고: SET PERSIST 사용 (MySQL 8.0 이상)

MySQL 8.0부터는 SET PERSIST 구문을 사용하면 서버를 직접 중단하지 않고도 설정을 영구적으로 저장할 수 있습니다.

mysql> SET PERSIST event_scheduler = ON;

이 명령은 mysqld-auto.cnf 파일에 설정값을 기록하므로, 이후 서버가 재시작되어도 해당 값이 자동으로 적용됩니다.

정리하면, MySQL 재시작 후에도 event_scheduler를 ON 상태로 유지하려면 설정 파일(my.cnf 또는 my.ini)에 옵션을 등록하거나, MySQL 8.0 이상 환경에서는 SET PERSIST 구문을 활용하면 됩니다.