[報錯解決]The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone.
阿新 • • 發佈:2018-12-10
報錯資訊:
在使用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&serverTimezone=UTC" />