萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysqldump備份數據後,新插入數據的datetime出錯的問題

mysqldump備份數據後,新插入數據的datetime出錯的問題

本文章給各位同學介紹mysqldump備份數據後,新插入數據的datetime出錯的問題解決辦法,有碰到此類問題的同學可參考。

公司開發了一套數據庫中間件系統,這兩天發現寫入到datetime或timestamp字段時會出現寫入時間比真實時間大8個小時的問題。

經過排查,發現是mysqldump搞得鬼

因為我們使用的是maya維護長連接,而且長連接是復用的,當執行mysqldump時,mysqldump默認啟用--tz-utc參數,將本連接的時區設為UTC時區(而北京的timezone是+08:00),這樣後面某個業務使用這個數據庫連接的,都會出現datetime/timestamp時間+8個小時。

官方文檔解釋:

--tz-utc

This option enables TIMESTAMP columns to be dumped and reloaded between servers in different time zones. mysqldump sets its connection time zone to UTC and adds SET TIME_ZONE='+00:00' to the dump file. Without this option, TIMESTAMP columns are dumped and reloaded in the time zones local to the source and destination servers, which can cause the values to change if the servers are in different time zones. --tz-utc also protects against changes due to daylight saving time. --tz-utc is enabled by default. To disable it, use --skip-tz-utc. This option was added in MySQL 5.1.2.

copyright © 萬盛學電腦網 all rights reserved