NO.1 產(chǎn)生問題
在我們學習中使用到sysdate這個函數(shù)時,發(fā)現(xiàn)查出來的日期時間與當前的正確時間不一致,相差8個小時左右,為什么會產(chǎn)生這個問題?又該如何解決?
– 在數(shù)據(jù)庫中使用sysdate()函數(shù)查詢系統(tǒng)時間
select sysdate();
結果顯示:
NO.2 原因分析
原因分析1:第一時間想到的是數(shù)據(jù)庫所在的云服務器時間可能與網(wǎng)絡時間不同步,因為數(shù)據(jù)庫是裝在云服務器上的,但是這種可能性應該較小,因為購買的阿里云服務器應該不會存在這種問題,一般會自動校對時間。于是先確定云服務器的時間,輸入date命令查看云服務器系統(tǒng)時間,結果云服務器顯示的時間是正確的,如下圖:
原因分析2:排除第一種可能后,又想到Mysql是部署在云服務器的docker容器上的,會不會是docker容器時間不對呢?因此進入容器,查看容器的系統(tǒng)時間。
# 進入容器 d71f18f09a4e:容器id,以自己的容器id為準
docker exec -it d71f18f09a4e /bin/bash
# 查看系統(tǒng)時間
date
果然,容器的時間不對,跟正確的時間相差了8個小時,跟數(shù)據(jù)庫查詢的結果是一樣的問題。所以SQL查出來的時間是跟隨容器的系統(tǒng)時間一致的,因此存在同樣的問題。所以我們只要把容器時間修改正確了,那我們通過SQL查詢出來的時間不對的問題也就解決了。
NO.3 解決方法
1.通過sql語句,查看系統(tǒng)時區(qū),修改時區(qū)來校對時間
– 第一步:查看系統(tǒng)時區(qū)
show variables like ‘%time_zone%’;
– 第二步:修改時區(qū),并生效
– 修改系統(tǒng)時區(qū)
set global time_zone = ‘+08:00’;
– 修改當前會話時區(qū)
set time_zone = ‘+8:00’;
– 立馬生效
flush privileges;
– 修改后再次查看
show variables like ‘%time_zone%’;
– 第三步:修改后再查看系統(tǒng)時間顯示
select sysdate();
第一步:系統(tǒng)時區(qū)查詢:
時區(qū)知識普及: 整個地球分為二十四時區(qū),每個時區(qū)都有自己的本地時間。在國際無線電通信場合,為了統(tǒng)一起見,使用一個統(tǒng)一的時間,稱為通用協(xié)調時(UTC, Universal Time Coordinated)。UTC與格林尼治平均時(GMT, Greenwich Mean Time)一樣,都與英國倫敦的本地時相同。在本文中,UTC與GMT含義完全相同。北京時區(qū)是東八區(qū),領先UTC八個小時,所以我們的時區(qū)為UTC+8。
第二步:修改時區(qū),并生效:
第三步:修改后再查看系統(tǒng)時間:
2.在云服務器上,把云服務器的正確時間文件拷貝到容器的中去,校對容器的時間
# 將服務器上時間文件拷貝到容器 d71f18f09a4e:容器id,以自己的容器id為準
docker cp /usr/share/zoneinfo/Asia/Shanghai d71f18f09a4e:/etc/localtime
# 重啟容器
docker restart d71f18f09a4e
# 查看容器是否運行docker ps
# 進入容器 d71f18f09a4e:容器id,以自己的容器id為準
docker exec -it d71f18f09a4e /bin/bash
# 查看容器的時間
date
**第一步:**復制日志文件后,查看容器時間:
第二步:數(shù)據(jù)庫查詢時間:
注意:如果容器時間顯示正確,但是數(shù)據(jù)庫查詢結果還是不對,則需要關閉客戶端(navicat),重新打開后再次查詢,基本就不會有問題了。
行動吧,在路上總比一直觀望的要好,未來的你肯定會感謝現(xiàn)在拼搏的自己!如果想學習提升找不到資料,沒人答疑解惑時,請及時加入群: 786229024,里面有各種測試開發(fā)資料和技術可以一起交流哦。
最后: 下方這份完整的軟件測試視頻教程已經(jīng)整理上傳完成,需要的朋友們可以自行領取 【保證100%免費】
軟件測試面試文檔
我們學習必然是為了找到高薪的工作,下面這些面試題是來自阿里、騰訊、字節(jié)等一線互聯(lián)網(wǎng)大廠最新的面試資料,并且有字節(jié)大佬給出了權威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。文章來源:http://www.zghlxwxcb.cn/news/detail-456230.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-456230.html
到了這里,關于Mysql 數(shù)據(jù)庫時間與系統(tǒng)時間不一致問題排查的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!