溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

遇到mysql timezone帶來數據不一致問題怎么處理

發布時間:2020-05-19 14:30:17 來源:網絡 閱讀:539 作者:三月 欄目:MySQL數據庫

文主要給大家介紹遇到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帶來數據不一致問題怎么處理,很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業知識信息 ,可以持續關注我們的行業資訊欄目的。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女