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

MySQL의 NOW() 및 CURDATE() 함수를 UTC 기준으로 사용하는 방법

MySQL에서 NOW(), CURDATE() 함수가 UTC를 사용하도록 설정하기

MySQL의 NOW()CURDATE() 함수가 UTC(협정 세계시)를 기준으로 동작하도록 만들려면 my.cnf 설정 파일을 수정해야 합니다. 아래와 같은 내용을 my.cnf 파일에 추가하면 됩니다.

[mysqld_safe]
timezone = UTC

1단계: 데이터 디렉터리 위치 확인

먼저 다음 쿼리를 실행하여 MySQL 데이터 디렉터리의 위치를 확인합니다.

mysql> select @@datadir;

실행 결과는 다음과 같습니다.

+---------------------------------------------+
| @@datadir                                   |
+---------------------------------------------+
| C:\ProgramData\MySQL\MySQL Server 8.0\Data\ |
+---------------------------------------------+
1 row in set (0.00 sec)

2단계: my.cnf 파일 편집

쿼리 결과로 확인된 경로로 이동한 후, 해당 디렉터리에서 my.cnf 파일을 찾아 편집합니다. Windows 시스템 기준으로는 일반적으로 MySQL 설치 경로 하위에서 파일을 찾을 수 있습니다.

my.cnf 파일 내 [mysqld] 섹션 아래에 다음 옵션을 추가합니다.

[mysqld_safe]
timezone = UTC

이 설정은 한 번만 지정해 두면 됩니다. 페이지를 로드할 때마다 작성할 필요가 없으며, my.cnf 파일에 한 번 추가해 두면 이후 모든 세션과 페이지 로드에 자동으로 적용됩니다.

3단계: 세션별 시간대 설정 (대안 방법)

설정 파일을 수정하지 않고 각 페이지 또는 세션마다 시간대를 직접 지정하는 방법도 있습니다.

mysql> SET time_zone = '+0:00';
Query OK, 0 rows affected (0.00 sec)

다만 이 방법은 매번 쿼리를 호출해야 하기 때문에 비효율적이며 좋은 방식이 아닙니다. 따라서 영구적으로 UTC를 적용하려면 my.cnf 파일에 timezone 옵션을 설정하는 첫 번째 방법을 사용하는 것이 권장됩니다.