MySQL JDBC 드라이버 5.1.33-시간대 문제


359

일부 배경 :

Tomcat 7에서 Java 1.6 webapp을 실행하고 있습니다. 데이터베이스는 MySQL 5.5입니다. 이전에는 Mysql JDBC 드라이버 5.1.23을 사용하여 DB에 연결했습니다. 모든 것이 효과가있었습니다. 최근에 Mysql JDBC 드라이버 5.1.33으로 업그레이드했습니다. 업그레이드 후 Tomcat은 앱을 시작할 때이 오류를 발생시킵니다.

WARNING: Unexpected exception resolving reference
java.sql.SQLException: The server timezone value 'UTC' is unrecognized or represents more than one timezone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc timezone value if you want to utilize timezone support.

왜 이런 일이 발생합니까?


1
JDBC URL은 어떤 모양입니까?
David Levesque

내 답변 stackoverflow.com/a/44720416/4592448을 확인하십시오 . 가장 좋은 답변이라고 생각합니다)
Fortran

답변:


673

분명히 UTC 시간대와 작동하도록 MySQL JDBC 드라이버 버전 5.1.33을 얻으려면 serverTimezone연결 문자열에 명시 적으로 지정해야 합니다.

jdbc:mysql://localhost/db?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC

4
문서 에 따르면 useJDBCCompliantTimezoneShift는 useLegacyDatetimeCode = false를 사용할 때 아무런 영향을 미치지 않습니다. 그러므로 필요하지 않습니다.
matof

24
이것은 내 오류를 해결합니다. 추가 참고 사항은 & amp; persistence.xml 파일에서 : <property name = "javax.persistence.jdbc.url"value = "jdbc : mysql : // localhost / test? useUnicode = true & amp; useJDBCCompliantTimezoneShift = true & amp; useLegacyDatetimeCode = false & amp; serverTimezone = UTC"/>
pdem

5
맞지 않습니다. useLegacyDatetimeCode = false는 serverTimezone을 지정하지 않아도되므로 클라이언트는 시간대 차이를 정정합니다. 해당 버전의 MySQL 클라이언트의 버그입니다.
antgar9

2
이 솔루션은 GMT를 제외한 시간대를 망칩니다. 올바른 솔루션이 아래에 과소 평가 된 것 같습니다
DuncanSungWKim

1
솔루션은 8.0.17에서 작동합니다. 새로 설치 한 MySQL이 설치되었습니다. 이 버그가 오랫동안 해결되지 않았다고 믿을 수 없습니다.
Tilman Hausherr

101

MySQL을 구성하여이 문제를 해결했습니다.

SET GLOBAL time_zone = '+3:00';


6
MSK 시간대를 사용하는 경우 +3이므로 다음 주소를 DB 주소로 사용할 수 있습니다 jdbc:mysql://localhost/db?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Europe/Moscow. mysql-connector가 짧은 시간대 이름을 이해하지 못하는 것 같습니다.
babay

2
일광 절약 시간 제가 시계를 변경하면 어떻게합니까?
isapir

3
mysql 8.0에서는 "set persist time_zone = '+00 : 00';" my.cnf를 편집하거나 서버를 다시 시작할 필요없이 UTC로 영구적으로 설정합니다. mysqlserverteam.com/…
ccleve

고유 한 수동 SQL 쿼리를 통해이를 설정하는 경우이 설정은 DB 재시작 후 원래 값으로 돌아갑니다.
CBA110

작동합니다-+3 대신에 현지 시간대 문자열을 수정해야합니다. SET GLOBAL time_zone = '+3 : 00';
Pravin

61

이 주제에 대한 여러 게시물을 읽은 후 다른 구성을 테스트 하고이 mysql 버그 스레드의 통찰력을 바탕으로 이해했습니다.

  • 서버 시간대는 특히 데이터베이스에 저장된 날짜를 애플리케이션 서버의 시간대로 변환하는 데 중요합니다. 다른 의미가 있지만 이것은 가장 눈에 띄는 것입니다
  • GMT x UTC 시간대 시스템. GMT는 19 세기 후반에 고안되었으며 표준 시간과 여름 시간 사이에서 전환 될 수 있습니다. 이 속성은 데이터베이스 서버가 서머 타임으로 이동하고 응용 프로그램에서이를 알지 못하는 상황으로 이어질 수 있습니다 (아마도 다른 합병증이 있지만 더 연구하지는 않았습니다). UTC는 시간에 따라 변하지 않습니다 (항상 0 ° 경도에서 평균 태양 시간의 약 1 초 이내).
  • serverTimeZone 정의는 mysql jdbc 커넥터 버전 5.1 이상에서 도입되었습니다. 버전 8까지는를 사용하여 무시할 수 있으며 useLegacyDatetimeCode=true, 이로 useJDBCCompliantTimezoneShift=true인해 응용 프로그램은 모든 연결에서 데이터베이스 시간대를 가져옵니다. 이 모드에서 'British Summer Time'과 같은 GMT 시간대는 내부 java / JDBC 형식으로 변환됩니다. .properties 인으로 정의 할 수 있습니다 새로운 시간대 등의 파일 이 하나
  • jdbc 드라이버 버전 8부터는 자동 시간 일치 ( useJDBCCompliantTimezoneShift) 및 레거시 시간 형식 ( useLegacyDatetimeCode)이 제거되었습니다 ( mysql jdbc 커넥터 changelog 참조 ). 따라서이 두 매개 변수를 설정해도 완전히 무시되므로 아무런 영향을 미치지 않습니다 (새로운 기본값은 useLegacyDateTimeCode=false).
  • 이러한 방식으로 시간대 (응용 프로그램 / 데이터베이스 서버)가 'UTC + xx'또는 'GMT + xx'형식이 아닌 경우 설정 serverTimezone필수 가되었습니다.
  • jdbc:mysql://localhost:3306/myschema?serverTimezone=UTC응용 프로그램 / 데이터베이스 서버가이 시간대에없는 경우에도 서버 시간을 UTC로 설정해도 아무런 영향을 미치지 않습니다. 응용 프로그램 연결 문자열 + 데이터베이스가 동일한 시간대와 동기화되는 것이 중요합니다. , 단순히 serverTimezone을 설정하는 UTC는 데이터베이스에서 추출 된 어떤 날짜를 이동합니다 데이터베이스 서버에서 다른 시간대로 =
  • MySQL 기본 시간대는 줄을 추가하여 my.ini 또는 my.cnf 파일 (각각 Windows / Linux)을 사용하여 UTC + 0으로 설정할 수 있습니다 default-time-zone='+00:00'( 이 StackOverflow 게시물의 세부 사항 참조 ).
  • AWS (amazon 웹 서비스)에 구성된 데이터베이스에는 UTC + 0 기본 시간이 자동으로 할당됩니다 ( AWS 도움말 페이지 참조 ).

1
좋은 대답, 고마워 다양한 글 머리 기호가 모두 유용합니다. 나는 default-time-zone = '+00:00'homebrew /usr/local/etc/my.cnf파일 에 넣을 제안과 함께 갔다 . 주위의 공백 =이 중요하기 때문에 글 머리 기호를 포함하도록 편집 할 수 있습니다.
Mark Edington

51

Maven을 사용하는 경우 다음과 같이 다른 MySQL 커넥터 버전을 설정할 수 있습니다 (같은 오류가 있으므로 6.0.2에서 5.1.39로 변경되었습니다) pom.xml.

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.39</version>
</dependency>

다른 답변에서보고 된 바와 같이이 문제는 버전 6.0.3 이상에서 수정되었으므로 업데이트 된 버전을 사용할 수 있습니다.

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>6.0.3</version>
</dependency>

Maven은 pom.xml파일 을 저장 한 후 프로젝트를 자동으로 다시 빌드합니다 .


2
mysql-connector-java / 6->를 다운로드 한 사람들은 mysql-connector-java / 5.1.20을 다운로드하면 작동합니다. 감사!
결합

6
다운 그레이드는 피해야합니다. 또한 6.0.6여전히 고정되어 있지 않습니다 . 더 나은 위의 솔루션을 사용하는
phil294

심지어 최신 항아리와 같은 오류를 얻고있다 [MySQL의 커넥터 - 자바-6.0.5.jar : 6.0.5]
user2478236

18
8.0.12에서도 가능합니다
Robert Niestroj

13
8.0.13도 같은 오류가 발생합니다. 5.1.47 그러나 나를 위해 작동합니다.
localhost

36

연결 문자열은 다음과 같이 설정해야합니다.

jdbc:mysql://localhost/db?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC

당신이에 연결을 정의 할 경우 xml파일을 (예 : persistence.xml, standalone-full.xml, 등), 대신 &사용해야 &amp;하거나 사용 CDATA블록을.


1
맞지 않습니다. useLegacyDatetimeCode = false는 serverTimezone을 지정하지 않아도되므로 클라이언트는 시간대 차이를 정정합니다.
antgar9.10.12.

이것은 phpStorm 2019.1.4로 MySQL 5.7에 연결하는 데 효과적이었습니다.
moult86

29

이것은 mysql-connector-java 버전 5.1.33에서 5.1.37까지의 버그입니다. 나는 그것을 여기에보고했다 : http://bugs.mysql.com/bug.php?id=79343

편집 : 이것은 mysql-connector-java 5.1.39에서 수정되었습니다.

loadTimeZoneMappings 메소드에서 TimeUtil 클래스의 오타로 /com/mysql/jdbc/TimeZoneMapping.properties 파일을 찾는 NPE를 발생시킵니다. 코드를 보면 파일이 TimeZone이 아니라 TimeUtil 클래스 로더 내에 있어야합니다.

TimeUtil.class.getResourceAsStream(TIME_ZONE_MAPPINGS_RESOURCE);

useLegacyDatetimeCode 매개 변수를 사용하면 날짜를 사용할 때 클라이언트와 서버 시간대의 차이를 자동으로 수정할 수 있습니다. 따라서 각 부분에 시간대를 지정할 필요가 없습니다. 사용 Althought serverTimeZone의 매개 변수를하는 것은 문제를 해결하고, 그 사이에 패치가 발표되어, 당신은 내가 그랬던 것처럼 스스로 코드를 수정 더 시도 할 수 있습니다.

  • 독립형 응용 프로그램 인 경우 수정 된 com / mysql / jdbc / TimeUtil 클래스를 코드에 추가하고 jar 로딩 순서에주의하십시오. 도움이 될 수 있습니다 : https://owenou.com/2010/07/20/patching-with-class-shadowing-and-maven.html

  • 웹 응용 프로그램 인 경우 더 쉬운 해결책은 .class를 원래 jar로 직접 대체하여 자신의 mysql-connector-java-5.1.37-patched.jar을 만드는 것입니다.


보고 해 주셔서 감사합니다. 누군가가 버그를 찾아 낼 수있어서 다행입니다. 수정 사항이 언제 릴리스되는지 알고 있습니까?
bluecollarcoder

제안하는 솔루션은 훌륭하지만 드라이버 소스를 수정하고 Maven 종속성을 관리하는 것은 대부분의 사람들에게 너무 성가신 것 같습니다.
bluecollarcoder

4
@Gili 이것은 릴리스 6.0.6
Imme22009

6
버그는 8.0.11에서 여전히 존재합니다
John Little

3
@JohnLittle 8.0.15 에서도이 문제가 발생했지만 더 이상 버그로 인한 것이 아닙니다. 에 어느 시간대가 올바르게 장착되어 있지만, CET 및 CEST (나에게 문제의 원인이 시간대)가 포함되지 TimeZone.getAvailableIDs()않으며에서 TimeZoneMapping.properties이 솔루션이 여기에 도움이되지 않습니다 그래서. 해결책은 다음과 같습니다.serverTimezone=Europe/Berlin
JPT

29

URL에 연결 문자열을 넣는 것을 해결했습니다.

jdbc:mysql://localhost:3306/db?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC

1
맞지 않습니다. useLegacyDatetimeCode = false는 serverTimezone을 지정하지 않아도되므로 클라이언트는 시간대 차이를 정정합니다.
antgar9

25

application.properties에 serverTimeZone = UTC를 추가하여 나를 위해 일했습니다.
spring.datasource.url=jdbc:mysql://localhost/db?serverTimezone=UTC


22
  1. [mysqld] 섹션에서 mysql 설정 파일에 추가했습니다 .

    default_time_zone='+03:00'
  2. 그리고 mysql 서버를 다시 시작하십시오.

    sudo service mysql restart

어디 +03 : 00 내 UTC 시간대.

내 os ​​우분투 16.04의 구성 파일 경로 :

/etc/mysql/mysql.conf.d/mysqld.cnf

경고 : 시간대가 여름과 겨울 시간 인 경우. 구성 시간이 변경되면 UTC를 UTC로 변경해야합니다. 1 년에 두 번 (보통) 또는 SUDO로 CRONTAB을 설정하십시오.

내 URL jdbc 연결 :

"jdbc:mysql://localhost/java"

1
Mysql을 재시작해야하는 것은 기본적으로 거의 모든 프로덕션 유스 케이스에서 시작이 아닙니다. 복제가 관련되면 훨씬 더 문제가됩니다.
bluecollarcoder

@bluecollarcoder [mysqld] 섹션에서만 추가해야합니다. 또는 섹션이없는 경우 [mysqld] 섹션을 추가하십시오. 내 설정 pastebin.com/j4F7t2KS
Fortran

1
Linux 서버의 / etc / localtime을 / usr / share / zoneinfo / US / Pacific에서 / usr / share / zoneinfo / America / Los_Angeles로 업데이트 한 다음 mysql 서비스를 다시 시작하여 문제가 해결되었습니다.
vinnyjames

내 구문이 제공된 경우 다시 시작할 때 오류가 발생했으며 올바른 대답 은 다음과 같습니다. default-time-zone='+03:00'대신 이 대답에 따라 . 또한 DBeaver에서 제공됩니다.
wscourge

당신은 자신의 MySQL의 설정 : 변경하기 위해 기업의 모든 개발자들에게 전하고있는 경우는 적절한 아니다
pheromix

16

나는 같은 문제가 있고 문자열 연결에 "? serverTimezone = UTC"만 추가하여 해결했습니다.

#

sinossi 내 문제 :

java.sql.SQLException : 서버 시간대 값 'CEST'이 (가) 인식되지 않거나 둘 이상의 시간대를 나타냅니다. 시간대 지원을 사용하려면보다 구체적인 시간대 값을 사용하도록 서버 또는 JDBC 드라이버 (serverTimezone 구성 특성을 통해)를 구성해야합니다.

my dbDriver = com.mysql.jdbc.Driver

my jar = mysql-connector-java-8.0.12.jar

my java = 1.8

my tomcat = Apache Tomcat Version 8.5.32

my MySql server = MySql ver.8.0.12 

14

위의 프로그램은 해당 시간대 오류를 생성합니다.

데이터베이스 이름 뒤에 다음을 추가해야합니다 ?useTimezone=true&serverTimezone=UTC.. 일단 코드를 작성하면 정상적으로 작동합니다.

행운을 빌어 요 :)


14

내 데이터베이스 쪽에서 다음을 실행했습니다.

mysql> SET @@global.time_zone = '+00:00';

mysql> SET @@session.time_zone = '+00:00';

mysql> SELECT @@global.time_zone, @@session.time_zone;

서버 버전을 사용하고 있습니다 : 8.0.17-MySQL 커뮤니티 서버-GPL

출처 : https://community.oracle.com/thread/4144569?start=0&tstart=0


U는 내 시간 친구를 구했다. 감사합니다 U.
Kumar

13

문제를 해결하는 데 필요한 모든 것 serverTimezone:

String url = "jdbc:mysql://localhost:3306/db?serverTimezone=" + TimeZone.getDefault().getID()

최신 5.4.15 버전에서도 나에게 일어났다. ur 데이터베이스 바로 옆에 "? serverTimezone ="+ TimeZone.getDefault (). getID () "를 추가하면 문제가 해결됩니다.
Tes

10

Maven 종속성에서 MySQL 커넥터를 사용할 수 있습니다.

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.14</version>
</dependency>

그런 다음 application.properties파일에 올바른 매개 변수를 설정해야 합니다.

spring.datasource.url=jdbc:mysql://localhost:3306/UserReward?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.username=testuser
spring.datasource.password=testpassword
# MySQL driver
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect

9

내가 사용하고 MySQL의 커넥터 - 자바 - 8.0.13을 동일한 문제가 있었다. 명령 행 콘솔에서 데이터베이스를 작성하고 명령 행에서 @Dimitry Rud의 솔루션을 사용 하여이 문제점을 해결했습니다 .

SET GLOBAL time_zone = '-6:00';

나는 아무것도 다시 시작할 필요가 없었고 시간을 설정하고 즉시 일식으로 코드를 실행했는데 아무런 문제없이 연결되었습니다.

버그는 이전 버전에서 수정되어야하는데 콘솔에서 데이터베이스를 생성 한 후에는 설정하지 않았기 때문에이 오류가 발생했다고 생각합니다. 콘솔 대신 워크 벤치 또는 다른 앱을 사용하여이를 관리하지 않습니다.


6

mysql workbench에서 다음 sql 문을 실행하십시오.

  1. SET @@ global.time_zone = '+00 : 00';
  2. SET @@ session.time_zone = '+00 : 00';

다음 SQL 문을 사용하여 값이 설정되었는지 확인하십시오.

SELECT @@ global.time_zone, @@ session.time_zone;


2
IntelliJ IDEA에서 연결을 시도하는 동안 문제의 오류가 발생했을 때 도움이되었습니다.
Faheem Hassan Zunjani

6

이것은 나를 위해 일했습니다.

DBeaver 6.0의 경우 : 연결 설정> 드라이버 특성> 서버 시간대> UTC 설정으로 이동하십시오.

또한 스프링 부트 구성에서 아래 속성을 설정해야했습니다.

jdbc : mysql : // localhost : /? serverTimezone = UTC


5

분명히 UTC 표준 시간대와 작동하도록 MySQL JDBC 드라이버 버전 5.1.33을 얻으려면 연결 문자열에 serverTimezone을 명시 적으로 지정해야합니다.

spring.datasource.url = jdbc:mysql://localhost:3306/quartz_demo?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC

3

나는 또한 LibreOffice Base에서 똑같은 문제를 겪고있었습니다. 그래서 방금 연결 문자열에 '일광 절약 시간대'가 아닌 것을 지정했습니다.
** 여기에 이미지 설명을 입력하십시오 **

"& serverTimezone = MST" 없이 시도 했지만 실패했습니다.

나는 또한 "& serverTimezone = MDT"를 시도했지만 실패했습니다. 어떤 이유로 든 일광 절약 시간이 마음에 들지 않습니다!


3

Windows에서 스프링 부트 프로젝트로 작업하려고 할 때도 같은 문제가 발생했습니다.

데이터 소스 URL은 다음과 같아야합니다.

spring.datasource.url=jdbc:mysql://localhost/database?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC


3

아래의 쿼리를 mysql DB로 실행하여 오류를 해결하십시오.

MariaDB [xxx> SET @@global.time_zone = '+00:00';
Query OK, 0 rows affected (0.062 sec)

MariaDB [xxx]> SET @@session.time_zone = '+00:00';
Query OK, 0 rows affected (0.000 sec)

MariaDB [xxx]> SELECT @@global.time_zone, @@session.time_zone;

3

나는 당신과 비슷한 오류가 있지만 서버 시간대 값은 'Afr. centrale Ouest '그래서 다음 단계를 수행했습니다.

MyError (IntelliJ IDEA Community Edition) :

    InvalidConnectionAttributeException: The server time zone value 'Afr. centrale Ouest' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the 'serverTimezone' configuration property) to use a more specifc time zone value if you want to u....

mysql 서버를 SQL Server 8.0 (MYSQL80)으로 업그레이드 할 때이 문제가 발생했습니다.

이 문제에 대한 가장 간단한 해결책은 MYSQL Workbench에 아래 명령을 작성하는 것입니다.

  SET GLOBAL time_zone = '+1:00'

시간대 이후의 값은 시간대의 GMT +/- 차이와 같습니다. 위의 예는 북아프리카 (GMT + 1 : 00) 또는 인도 (GMT + 5 : 30)입니다. 문제가 해결됩니다.

Mysql Workbench에 다음 코드를 입력하고 쿼리를 실행하십시오.

[질문 / 문제의 출처 링크]

[답변 소스 링크]

[솔루션 스크린 샷]


2
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/resultout? useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC","root",""))

이것은 실제로이 문제에 대한 해결책이지만 프로그램에 복사하여 붙여 넣는 것이 아닙니다. 방금 줄을 읽으면 'resultout'을 찾을 수 있습니다. 이것이 내 데이터베이스의 이름이므로 작성해야합니다.

세 개의 문자열 구성 요소가 있습니다. 첫 번째는 URL이고, 두 번째는 사용자 이름이며, 세 번째는 비밀번호입니다. 위의 단락에서 url을 지 웁니다. 사용자 이름과 비밀번호에 따라 두 번째 및 세 번째 문자열 구성 요소는 그에 따라 변경해야합니다.

감사


1

단일 코드 변경 없이이 문제를 해결했습니다. 시스템 시간 설정으로 이동하여 시간대를 설정하십시오. 필자의 경우 기본 시간대는 UTC이며 현지 시간대로 변경되었습니다. 모든 서비스를 다시 시작한 후 모든 것이 효과적이었습니다.


1

늦었지만 다음 오류로 인해 고생하고 datasource (javax.sql.DataSource)를 사용하는 경우 :

The server time zone value 'CEST' is unrecognized or represents more than one time zone.

오류를 제거하려면 다음 줄을 설정하십시오.

MysqlDataSource dataSource = new MysqlDataSource();
dataSource.setServerTimezone("UTC");

1

필자의 경우 테스트 환경이었으며 가능한 경우 구성 변경없이 그리고 가능한 경우 MySQL 구성 변경없이 작동하도록 기존 응용 프로그램을 만들어야했습니다. @vinnyjames 제안에 따라 서버 시간대를 UTC로 변경 하여 문제를 해결할 수있었습니다 .

ln -sf /usr/share/zoneinfo/UTC /etc/localtime
service mysqld restart

그렇게하면 문제를 해결하기에 충분했습니다.


1

/etc/mysql/my.cnf파일에 다음 줄을 추가했습니다 .

default_time_zone='+00:00'

MySQL 서버를 다시 시작했습니다 :

systemctl restart mysql

그리고 그것은 매력처럼 작동합니다.


0

@bluecollarcoder 답변에 동의하지만 TimeZone.getDefault().getID();연결 문자열 끝에 사용하는 것이 좋습니다 .

"jdbc:mysql://localhost/db?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=" + TimeZone.getDefault().getID();  

이 경우 Timezone로컬 시스템 시간대에 따라 매개 변수가 자동으로 업데이트됩니다.


맞지 않습니다. useLegacyDatetimeCode = false는 serverTimezone을 지정하지 않아도되므로 클라이언트는 시간대 차이를 정정합니다.
antgar9

0

application.properties 파일에서 다음 코드로 연결 문자열을 수정하십시오.


spring.datasource.url=jdbc:mysql://localhost:3301/Db?
   useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=
   false&serverTimezone=UTC

0

서버 시간을 UTC로 설정해도 아무런 영향이 없습니다 (예 : jdbc:mysql://localhost:3306/myschema?serverTimezone=UTC응용 프로그램 / 데이터베이스 서버가이 시간대에없는 경우에도 않습니다. 응용 프로그램 연결 문자열 + 데이터베이스가 동일한 시간대와 동기화되는 것이 중요합니다.

즉, serverTimezone=UTC데이터베이스 서버에서 다른 시간대로 설정하면 데이터베이스에서 추출 된 날짜가 이동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.