1. 程式人生 > >[報錯解決]The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone.

[報錯解決]The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone.

報錯資訊:

在使用mysql-connector-java-6.0.6連線mysql資料庫的時候,出現了報錯:The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone.

報錯原因:

顧名思義,伺服器的時區值”?й???????無法識別或代表多個時區。您必須配置伺服器或驅動程式(通過serverTimezone配置屬性)使用一個更具體的時區值如果你想利用時區支援。說白了,沒有配置時區,有可能出現問題。

解決方案:

在通過在資料庫連線URL後,加上?serverTimezone=UTC 

為什麼是UTC

環境需要:如要維護多國環境如中美,時區一致便與維護 

避免風險:避免PDT時區換算出錯

實際案例:

1. xxx.properties型別配置檔案,如spring配置檔案,類似如下配置即可

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

2.xxx.xml 型別配置檔案,如mybatis的配置檔案mybatis.cfg.xml,需要注意:xml檔案不能識別分割符“&”,需用“&”替代,否則將報錯:org.xml.sax.SAXParseException; lineNumber: 30; columnNumber: 109; 對實體 "serverTimezone" 的引用必須以 ';' 分隔符結尾。配置示例如下:

<property name="url" value="jdbc:mysql://localhost:3306/mysql?useUnicode=true&amp;serverTimezone=UTC" />