校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > mysql解決時區(qū)相關(guān)問題

mysql解決時區(qū)相關(guān)問題

熱門標(biāo)簽:許昌外呼增值業(yè)務(wù)線路 申請400電話電話價格 宜賓全自動外呼系統(tǒng)廠家 咸陽防封電銷卡 新鄉(xiāng)智能外呼系統(tǒng)好處 地圖標(biāo)注客戶付款 石家莊400電話辦理公司 廣東400企業(yè)電話申請流程 臨沂做地圖標(biāo)注

前言:

在使用 MySQL 的過程中,你可能會遇到時區(qū)相關(guān)問題,比如說時間顯示錯誤、時區(qū)不是東八區(qū)、程序取得的時間和數(shù)據(jù)庫存儲的時間不一致等等問題。其實,這些問題都與數(shù)據(jù)庫時區(qū)設(shè)置有關(guān),本篇文章將從數(shù)據(jù)庫參數(shù)入手,逐步介紹時區(qū)相關(guān)內(nèi)容。

1.log_timestamps 參數(shù)介紹

首先說明下log_timestamps參數(shù)并不影響時區(qū),只是設(shè)置不同會影響某些日志記錄的時間。該參數(shù)主要是控制 error log、slow log、genera log 日志文件中的顯示時間,但不會影響 general log 和 slow log 寫到表 (mysql.general_log, mysql.slow_log) 中的顯示時間。

log_timestamps 是全局參數(shù),可動態(tài)修改,默認(rèn)使用 UTC 時區(qū),這樣會使得日志中記錄的時間比北京時間慢 8 個小時,導(dǎo)致查看日志不方便。可以修改為 SYSTEM 變成使用系統(tǒng)時區(qū)。下面簡單測試下該參數(shù)的作用及修改方法:

# 查看參數(shù)值
mysql> show global variables like 'log_timestamps';
+----------------+-------+
| Variable_name | Value |
+----------------+-------+
| log_timestamps | UTC  |
+----------------+-------+
1 row in set (0.00 sec)

# 產(chǎn)生慢日志
mysql> select sleep(10),now();
+-----------+---------------------+
| sleep(10) | now()        |
+-----------+---------------------+
|     0 | 2020-06-24 17:12:40 |
+-----------+---------------------+
1 row in set (10.00 sec)

# 慢日志文件記錄內(nèi)容 發(fā)現(xiàn)時間是UTC時間
# Time: 2020-06-24T09:12:50.555348Z
# User@Host: root[root] @ localhost [] Id:  10
# Query_time: 10.000354 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 1
SET timestamp=1592989960;
select sleep(10),now();

# 修改參數(shù)值 再次測試
mysql> set global log_timestamps = SYSTEM;
Query OK, 0 rows affected (0.00 sec)

mysql> select sleep(10),now();
+-----------+---------------------+
| sleep(10) | now()        |
+-----------+---------------------+
|     0 | 2020-06-24 17:13:44 |
+-----------+---------------------+
1 row in set (10.00 sec)

# 慢日志文件記錄內(nèi)容 時間是對的
# Time: 2020-06-24T17:13:54.514413+08:00
# User@Host: root[root] @ localhost [] Id:  10
# Query_time: 10.000214 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 1
SET timestamp=1592990024;
select sleep(10),now();

2.time_zone 參數(shù)介紹

time_zone參數(shù)用來設(shè)置每個連接會話的時區(qū),該參數(shù)分為全局和會話級別,可以動態(tài)修改。默認(rèn)值為 SYSTEM,此時使用的是全局參數(shù) system_time_zone 的值,而 system_time_zone 默認(rèn)繼承自當(dāng)前系統(tǒng)的時區(qū),即默認(rèn)情況下 MySQL 時區(qū)和系統(tǒng)時區(qū)相同。

時區(qū)設(shè)置主要影響時區(qū)敏感的時間值的顯示和存儲。包括一些函數(shù)(如 now()、curtime())顯示的值,以及存儲在 TIMESTAMP 類型中的值,但不影響 DATE、TIME 和 DATETIME 列中的值,因為這些數(shù)據(jù)類型在存取時未進(jìn)行時區(qū)轉(zhuǎn)換,而 TIMESTAMP 類型存入數(shù)據(jù)庫的實際是 UTC 的時間,查詢顯示時會根據(jù)具體的時區(qū)來顯示不同的時間。

下面我們來測試下 time_zone 參數(shù)修改產(chǎn)生的影響:

# 查看linux系統(tǒng)時間及時區(qū)
[root@centos ~]# date
Sun Jun 28 14:29:10 CST 2020

# 查看MySQL當(dāng)前時區(qū)、時間
mysql> show global variables like '%time_zone%';
+------------------+--------+
| Variable_name  | Value |
+------------------+--------+
| system_time_zone | CST  |
| time_zone    | SYSTEM |
+------------------+--------+
2 rows in set (0.00 sec)

mysql> select now();
+---------------------+
| now()        |
+---------------------+
| 2020-06-28 14:31:12 |
+---------------------+
1 row in set (0.00 sec)

# 創(chuàng)建測試表、插入部分?jǐn)?shù)據(jù)
mysql> CREATE TABLE `time_zone_test` (
  ->  `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主鍵',
  ->  `dt_col` datetime DEFAULT NULL COMMENT 'datetime時間',
  ->  `ts_col` timestamp DEFAULT NULL COMMENT 'timestamp時間',
  ->  PRIMARY KEY (`id`)
  -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='time_zone測試表';
Query OK, 0 rows affected, 1 warning (0.07 sec)

mysql> insert into time_zone_test (dt_col,ts_col) values ('2020-06-01 17:30:00','2020-06-01 17:30:00'),(now(),now());
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> select * from time_zone_test;
+----+---------------------+---------------------+
| id | dt_col       | ts_col       |
+----+---------------------+---------------------+
| 1 | 2020-06-01 17:30:00 | 2020-06-01 17:30:00 |
| 2 | 2020-06-28 14:34:55 | 2020-06-28 14:34:55 |
+----+---------------------+---------------------+

# 改為UTC時區(qū) 并重新連接 發(fā)現(xiàn)timestamp存儲的時間會隨時區(qū)變化
mysql> set global time_zone='+0:00';
Query OK, 0 rows affected (0.00 sec)
mysql> set time_zone='+0:00';
Query OK, 0 rows affected (0.00 sec)

mysql> show global variables like '%time_zone%';
+------------------+--------+
| Variable_name  | Value |
+------------------+--------+
| system_time_zone | CST  |
| time_zone    | +00:00 |
+------------------+--------+
2 rows in set (0.00 sec)

mysql> select now();
+---------------------+
| now()        |
+---------------------+
| 2020-06-28 06:36:16 |
+---------------------+
1 row in set (0.00 sec)

mysql> select * from time_zone_test;
+----+---------------------+---------------------+
| id | dt_col       | ts_col       |
+----+---------------------+---------------------+
| 1 | 2020-06-01 17:30:00 | 2020-06-01 09:30:00 |
| 2 | 2020-06-28 14:34:55 | 2020-06-28 06:34:55 |
+----+---------------------+---------------------+
2 rows in set (0.00 sec)

# 改回東八時區(qū),恢復(fù)正常
mysql> set global time_zone='+8:00';
Query OK, 0 rows affected (0.00 sec)

mysql> set time_zone='+8:00';
Query OK, 0 rows affected (0.00 sec)

mysql> show global variables like '%time_zone%';
+------------------+--------+
| Variable_name  | Value |
+------------------+--------+
| system_time_zone | CST  |
| time_zone    | +08:00 |
+------------------+--------+
2 rows in set (0.00 sec)

mysql> select now();
+---------------------+
| now()        |
+---------------------+
| 2020-06-28 14:39:14 |
+---------------------+
1 row in set (0.00 sec)

mysql> select * from time_zone_test;
+----+---------------------+---------------------+
| id | dt_col       | ts_col       |
+----+---------------------+---------------------+
| 1 | 2020-06-01 17:30:00 | 2020-06-01 17:30:00 |
| 2 | 2020-06-28 14:34:55 | 2020-06-28 14:34:55 |
+----+---------------------+---------------------+
2 rows in set (0.00 sec)

如果需要永久生效,還需寫入配置文件中。例如將時區(qū)改為東八區(qū),則需要在配置文件[mysqld]部分增加一行:default_time_zone = '+8:00'。

3.時區(qū)常見問題及如何避免

時區(qū)設(shè)置不妥可能會產(chǎn)生各種問題,下面我們列舉下幾個常見的問題及解決方法:

3.1 MySQL 內(nèi)部時間不是北京時間

遇到這類問題,首先檢查下系統(tǒng)時間及時區(qū)是否正確,然后看下 MySQL 的 time_zone,建議將 time_zone 改為'+8:00'。

3.2 Java 程序存取的時間與數(shù)據(jù)庫中的時間相差 8 小時

出現(xiàn)此問題的原因大概率是程序時區(qū)與數(shù)據(jù)庫時區(qū)不一致導(dǎo)致的。我們可以檢查下兩邊的時區(qū),如果想統(tǒng)一采用北京時間,則可以在 jdbc 連接串中增加 serverTimezone=Asia/Shanghai,并且 MySQL 方面也可以將 time_zone 改為'+8:00'。

3.3 程序時間與數(shù)據(jù)庫時間相差 13 小時或 14 小時

如果說相差 8 小時不夠讓人驚訝,那相差 13 小時可能會讓很多人摸不著頭腦。出現(xiàn)這個問題的原因是 JDBC 與 MySQL 對 “CST” 時區(qū)協(xié)商不一致。因為 CST 時區(qū)是一個很混亂的時區(qū),有四種含義:

  • 美國中部時間 Central Standard Time (USA) UTC-05:00 或 UTC-06:00
  • 澳大利亞中部時間 Central Standard Time (Australia) UTC+09:30
  • 中國標(biāo)準(zhǔn)時 China Standard Time UTC+08:00
  • 古巴標(biāo)準(zhǔn)時 Cuba Standard Time UTC-04:00

MySQL 中,如果 time_zone 為默認(rèn)的 SYSTEM 值,則時區(qū)會繼承為系統(tǒng)時區(qū) CST,MySQL 內(nèi)部將其認(rèn)為是 UTC+08:00。而 jdbc 會將 CST 認(rèn)為是美國中部時間,這就導(dǎo)致會相差 13 小時,如果處在冬令時還會相差 14 個小時。

解決此問題的方法也很簡單,我們可以明確指定 MySQL 數(shù)據(jù)庫的時區(qū),不使用引發(fā)誤解的 CST,可以將 time_zone 改為'+8:00',同時 jdbc 連接串中也可以增加 serverTimezone=Asia/Shanghai。

3.4 如何避免出現(xiàn)時區(qū)問題

如何避免上述時區(qū)問題,可能你心里也有了些方法,簡要總結(jié)幾點如下:

  1. 首先保證系統(tǒng)時區(qū)準(zhǔn)確。
  2. jdbc 連接串中指定時區(qū),并與數(shù)據(jù)庫時區(qū)一致。
  3. time_zone 參數(shù)建議設(shè)置為'+8:00',不使用容易誤解的 CST。
  4. 各環(huán)境數(shù)據(jù)庫實例時區(qū)參數(shù)保持相同。

可能有的同學(xué)說了,我們數(shù)據(jù)庫中 time_zone 參數(shù)選擇的是默認(rèn)的 SYSTEM 值,也沒有發(fā)生程序時間和數(shù)據(jù)庫時間不一致的問題。此時是否需要將 time_zone 改為'+8:00'?在這種情況下還是建議將 time_zone 改為'+8:00',特別是經(jīng)常查詢 TIMESTAMP 字段,因為當(dāng) time_zone=system 的時候,查詢 timestamp 字段會調(diào)用系統(tǒng)的時區(qū)做時區(qū)轉(zhuǎn)換,有全局鎖__libc_lock_lock 的保護(hù),可能導(dǎo)致線程并發(fā)環(huán)境下系統(tǒng)性能受限。而改為'+8:00'則不會觸發(fā)系統(tǒng)時區(qū)轉(zhuǎn)換,使用 MySQL 自身轉(zhuǎn)換,大大提高了性能。

總結(jié):

讀完本篇文章,你是否對數(shù)據(jù)庫時區(qū)有了更深刻的認(rèn)識呢。希望這篇文章對你有所幫助,特別是想了解 MySQL 時區(qū)相關(guān)內(nèi)容時,可以拿來多讀讀。如果你遇到過其他時區(qū)相關(guān)問題,歡迎留言討論。

以上就是mysql解決時區(qū)相關(guān)問題的詳細(xì)內(nèi)容,更多關(guān)于mysql時區(qū)相關(guān)問題的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • 關(guān)于Java中的mysql時區(qū)問題詳解
  • MySQL查看和修改時區(qū)的方法
  • MySQL修改時區(qū)的方法小結(jié)
  • 詳解MySQL查詢時區(qū)分字符串中字母大小寫的方法
  • mysql時區(qū)問題
  • 解決MySQL8.0時區(qū)的問題步驟

標(biāo)簽:臺灣 鎮(zhèn)江 阜新 合肥 日照 貴州 鷹潭 北京

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《mysql解決時區(qū)相關(guān)問題》,本文關(guān)鍵詞  mysql,解決,時區(qū),相關(guān),問題,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《mysql解決時區(qū)相關(guān)問題》相關(guān)的同類信息!
  • 本頁收集關(guān)于mysql解決時區(qū)相關(guān)問題的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    国产精品福利影院| 久久精品人人爽人人爽| 亚洲免费资源在线播放| 波多野结衣中文字幕一区二区三区| 精品处破学生在线二十三| 国产麻豆视频一区| 精品精品欲导航| 国产99一区视频免费| 综合精品久久久| 欧美亚洲自拍偷拍| 麻豆精品在线看| 久久精品在这里| 成人爱爱电影网址| 99久久免费精品高清特色大片| 成人av资源下载| 欧美日韩在线免费视频| 精品乱人伦一区二区三区| 亚洲男女一区二区三区| 蜜臀精品一区二区三区在线观看| 国产乱码精品一区二区三区忘忧草| 高清免费成人av| 欧美一区二区观看视频| **欧美大码日韩| 国产综合色视频| 欧美性生活影院| 久久免费午夜影院| 日本亚洲一区二区| 日韩三级中文字幕| 亚洲成av人**亚洲成av**| 亚洲成人黄色影院| 亚洲成a人片在线观看中文| 久久久www成人免费无遮挡大片 | 国产一区美女在线| 亚洲乱码日产精品bd| 久久精品亚洲乱码伦伦中文 | 国产精品久久久爽爽爽麻豆色哟哟| 一本色道综合亚洲| 美女网站在线免费欧美精品| 国产精品网曝门| 欧美精品日韩精品| 99久久亚洲一区二区三区青草| 香蕉成人伊视频在线观看| 国产蜜臀av在线一区二区三区| 欧美日高清视频| 成人毛片老司机大片| 另类小说综合欧美亚洲| 一区二区三区精品视频在线| 欧美韩国日本一区| 精品国产一区二区三区不卡| 欧美影院一区二区三区| 成人福利视频在线看| 麻豆国产精品视频| 午夜欧美在线一二页| 中文字幕一区二区在线观看| 久久亚洲免费视频| 欧美一级理论性理论a| 色婷婷狠狠综合| 成人免费视频一区| 国产麻豆91精品| 另类小说图片综合网| 视频一区在线视频| 亚洲综合网站在线观看| 中文字幕色av一区二区三区| 中文字幕久久午夜不卡| 久久中文娱乐网| 日韩免费一区二区| 欧美一级欧美一级在线播放| 欧美老年两性高潮| 欧美日韩免费一区二区三区| 色偷偷成人一区二区三区91| 91视频91自| 一本久道久久综合中文字幕| av在线播放成人| 99精品久久免费看蜜臀剧情介绍| 大胆欧美人体老妇| 成人精品小蝌蚪| 成人性视频网站| 国产成人免费视频一区| 国产精品一二三| 国产尤物一区二区| 国产麻豆一精品一av一免费 | 91精选在线观看| 欧美人与禽zozo性伦| 欧美日韩在线免费视频| 欧美久久久久久久久中文字幕| 色成人在线视频| 欧美区一区二区三区| 欧美一区二区三区日韩| 2022国产精品视频| 国产欧美日韩在线看| 中文字幕制服丝袜一区二区三区 | 三级久久三级久久久| 天天色天天操综合| 美女视频黄频大全不卡视频在线播放| 日本不卡一二三| 国产精品一区二区视频| 不卡的电影网站| 欧美午夜精品一区| 67194成人在线观看| 久久久久久黄色| 欧美zozo另类异族| caoporn国产一区二区| 国产精品亚洲专一区二区三区| 亚洲黄色片在线观看| 国产三级精品在线| 日韩美女一区二区三区| 久久精品这里都是精品| 综合在线观看色| 丝袜美腿亚洲色图| 另类综合日韩欧美亚洲| 国产成人自拍网| 91成人在线精品| 日韩免费性生活视频播放| 久久久久久久久久久电影| 中文字幕欧美一区| 亚洲18女电影在线观看| 麻豆91免费看| 色婷婷综合五月| 在线视频一区二区三区| 久久久一区二区| 中文字幕日韩一区| 中文字幕av免费专区久久| 国产精品视频免费看| 亚洲成va人在线观看| 91麻豆高清视频| 亚洲精品成人天堂一二三| 精品国产三级a在线观看| 中文字幕在线观看不卡| 日本欧美一区二区三区| www.激情成人| 欧美成人精品福利| 亚洲综合网站在线观看| 成人深夜在线观看| 日韩欧美中文一区二区| 亚洲欧美电影一区二区| 国产精品99久| 日韩免费电影一区| 亚洲最色的网站| 成人av在线一区二区三区| 日韩精品一区二区三区视频在线观看| 亚洲另类在线制服丝袜| 国产精品一级在线| 欧美tk丨vk视频| 午夜日韩在线观看| 日本高清不卡一区| 中文字幕一区二区三| 国产一区二区在线观看免费| 欧美久久一二区| 亚洲精品国产一区二区三区四区在线| 国产一区二区三区四| 日韩欧美高清一区| 日本亚洲天堂网| 91精品国产高清一区二区三区 | 欧美体内she精视频| 久久综合色天天久久综合图片| 亚洲欧美欧美一区二区三区| 在线影视一区二区三区| 亚洲午夜久久久久久久久电影院 | 国产一区二区在线视频| 精品少妇一区二区三区在线视频| 日韩视频免费观看高清在线视频| 亚洲一区二区视频在线| 一本到高清视频免费精品| 欧美经典一区二区| 国产成人啪午夜精品网站男同| 久久久天堂av| 久久99精品久久久久久动态图| 日韩欧美一级二级| 美美哒免费高清在线观看视频一区二区| 欧美怡红院视频| 亚洲bt欧美bt精品777| 欧美日韩一本到| 日韩国产一二三区| 欧美成人三级在线| 国产乱码精品一区二区三区av| 国产亚洲自拍一区| 不卡在线观看av| 亚洲日本成人在线观看| 欧洲另类一二三四区| 午夜av电影一区| 精品福利av导航| 成人ar影院免费观看视频| 亚洲综合丝袜美腿| 欧美一区二区视频在线观看2020 | 91啪亚洲精品| 亚洲午夜三级在线| 欧美一区二区精品| 国产一区二区0| 亚洲色图.com| 欧美日韩视频专区在线播放| 六月丁香综合在线视频| 国产精品网站一区| 欧美视频三区在线播放| 久久97超碰色| 一区精品在线播放| 91亚洲资源网| 欧美日韩国产经典色站一区二区三区| 99精品国产视频| 国产91高潮流白浆在线麻豆 | 成人欧美一区二区三区白人|