mysql5.7寫入數據時間相差13/14小時解決


原因

mysql5.7默認時區使用SYSTEM,如果服務器時間為中國區(+08:00),那么mysql的system_time_zone變量為CST

而CST可能有以下四種解釋,在不通項目中可能出現不一致

美國中部時間 Central Standard Time (USA) UTC-05:00 / UTC-06:00
澳大利亞中部時間 Central Standard Time (Australia) UTC+09:30
中國標准時 China Standard Time UTC+08:00
古巴標准時 Cuba Standard Time UTC-04:00

在JAVA中CST為美國中部時間,夏令時為UTC-05:00,其他時間為UTC-06:00,與中國區相差13/14個小時;

在創建數據庫連接時會自動從數據庫獲取包括時區在內的配置信息,導致時區配置錯誤。

解決

  1. 在連接字符串中指定時區

jdbc:mysql://xxxx:3306/schema?serverTimezone=Asia/Shanghai

  1. 修改mysql配置,設置指定默認時區
default-time-zone=Asia/Shanghai
  • 另:mysql默認日志時區為UTC,可通過以下配置改為系統時區
log-timestamps=system


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM