解決MySQL插入時(shí)間差八小時(shí)問題
一般 jdbc url中 需要添加幾個(gè)參數(shù) , 大多數(shù)博客給的教程都是 useSSL=falseuseUnicode=truecharacterEncoding=UTF-8serverTimezone=UTC
這幾個(gè)參數(shù),
配置結(jié)果為: jdbc:mysql://localhost:3306/test?useUnicode=truecharacterEncoding=UTF-8serverTimezone=UTC
對(duì)于解決時(shí)區(qū)問題,以前我也是這么用的 serverTimezone=UTC ,直到了今天踩到小坑了,才知道這不是萬能的.
首先正常插入一條記錄
發(fā)現(xiàn)數(shù)據(jù)庫(kù)的記錄時(shí)間和本地的時(shí)間不太一樣
![](http://img.jbzj.com/file_images/article/201912/20191215101429598.jpg?20191115101440)
第一種: 查看 mysql 中的時(shí)間
先在cmd中使用 mysql -u 用戶名 -p 密碼來登錄mysql
輸入select now();
查看MySQL時(shí)間
![](http://img.jbzj.com/file_images/article/201912/20191215101526171.jpg?20191115101552)
如果時(shí)間和你本地當(dāng)前時(shí)間一致
說明mysql的時(shí)間沒有問題, 問題就出現(xiàn)在java時(shí)間上
將jdbc url參數(shù)修改成 serverTimezone=Asia/Shanghai
試試.
第二種: 如果查詢 mysql 時(shí)間和本地不一致,使用以下語句設(shè)置mysql時(shí)區(qū)
show variables like '%time_zone%'; //查詢當(dāng)前時(shí)區(qū)
set global time_zone='+8:00'; //在標(biāo)準(zhǔn)時(shí)區(qū)上加+8小時(shí),即東8區(qū)時(shí)間
flush privileges; # 立即生效
最終測(cè)試效果
![](http://img.jbzj.com/file_images/article/201912/20191215101647035.jpg?2019111510174)
成功
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。
您可能感興趣的文章:- Mysql經(jīng)典的“8小時(shí)問題”