本文主要給大家介紹遇到mysql timezone帶來數據不一致問題怎么處理,文章內容都是筆者用心摘選和編輯的,具有一定的針對性,對大家的參考意義還是比較大的,下面跟筆者一起了解下遇到mysql timezone帶來數據不一致問題怎么處理吧。
mysql> select *,from_unixtime(create_time) from 表名 where source_id=xxx\G *************************** 1. row *************************** id: xxx uid: xxx source_id: xxx create_time: 1495324892 type: 0 source_status: 0 nick_name: 環境監控組-xxx start_time: 1495324883 remark: 忽略視頻 pre_check_status: 0 source: 3 from_unixtime(create_time): 2017-05-21 00:01:32 1 row in set (0.00 sec)
因為運營庫是2主2從,我對比了主從的數據,發現確實不一樣,一個是早上8點,另外一個是凌晨,使用了from_unixtime函數,結果相差8個小時,比較像是時區的問題
mysql> select from_unixtime(1495324892); +---------------------------+ | from_unixtime(1495324892) | +---------------------------+ | 2017-05-21 08:01:32 | +---------------------------+ 1 row in set (0.00 sec) mysql> select from_unixtime(1495324892); +---------------------------+ | from_unixtime(1495324892) | +---------------------------+ | 2017-05-21 00:01:32 | +---------------------------+ 1 row in set (0.00 sec)
懷疑是linux機器的時區問題,但查詢發現都是一樣的
Thu May 25 15:11:29 CST 2017
既然與linux時區無關,那應該跟MySQL的時間有關了,再次分別查詢主從的時間
mysql> select now(); +---------------------+ | now() | +---------------------+ | 2017-05-25 15:12:28 | +---------------------+ 1 row in set (0.00 sec) mysql> select now(); +---------------------+ | now() | +---------------------+ | 2017-05-25 07:09:31 | +---------------------+ 1 row in set (0.00 sec)
果然是MySQL的時間問題
mysql> show variables like "%time_zone%"; +------------------+--------+ | Variable_name | Value | +------------------+--------+ | system_time_zone | HKT | | time_zone | SYSTEM | +------------------+--------+ 2 rows in set (0.00 sec) mysql> show variables like "%time_zone%"; +------------------+--------+ | Variable_name | Value | +------------------+--------+ | system_time_zone | UTC | | time_zone | SYSTEM | +------------------+--------+ 2 rows in set (0.00 sec)
發現一個MySQL處于UTC時間,世界標準時間,而另外一個是香港時間,中國是東八區,比世界標準時間多8個小時,這就解釋了為什么8點打卡,卻顯示在凌晨上班。于是把有問題的MySQL,重新修改時區
set global time_zone = '+8:00'; set time_zone = '+8:00'; flush privileges;
看完以上關于遇到mysql timezone帶來數據不一致問題怎么處理,很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業知識信息 ,可以持續關注我們的行業資訊欄目的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。