欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql now()函數(shù)調(diào)用系統(tǒng)時(shí)間不對(duì)的解決方法

 更新時(shí)間:2023年05月24日 11:25:17   作者:五角大寨  
mysql的now()函數(shù)與實(shí)際時(shí)間不符,本文就詳細(xì)的介紹一下mysql now()函數(shù)調(diào)用系統(tǒng)時(shí)間不對(duì)的解決方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下

今天在MySQL的Now函數(shù)上踩了兩個(gè)坑,花了不少時(shí)間。

向數(shù)據(jù)庫(kù)寫記錄最好用不用客戶端時(shí)間

第一個(gè)坑是客戶端、服務(wù)器的系統(tǒng)時(shí)間不一致。

在執(zhí)行依賴時(shí)間的SQL查詢的時(shí)候,使用了客戶端本地的時(shí)間格式,客戶端程序返回當(dāng)前時(shí)間是:‘7/18/2022 10:02:43’,然而MYSQL就不能正確識(shí)別了,也沒(méi)有報(bào)錯(cuò),導(dǎo)致這個(gè)這個(gè)錯(cuò)誤隱藏了很久才被發(fā)現(xiàn)。

實(shí)際上,如果給出的時(shí)間格式是這樣:‘2022/7/18 10:02:43’,就會(huì)返回預(yù)期的結(jié)果。猜想這次運(yùn)行客戶端程序的服務(wù)器雖然也是中文版,但是內(nèi)核應(yīng)該是英文版的,因此系統(tǒng)默認(rèn)的時(shí)間格式和我們常見的不同,于是MySQL把它認(rèn)作是。。。(一個(gè)古怪的時(shí)間去了)

解決辦法

盡可能不使用客戶端的時(shí)間,不準(zhǔn)確還有時(shí)區(qū)問(wèn)題,用MySQL服務(wù)器端時(shí)間Now()來(lái)進(jìn)行查詢和保存記錄。

MySQL服務(wù)器時(shí)區(qū)不等于東八區(qū)的問(wèn)題

這次遇到的MySQL的版本默認(rèn)的時(shí)區(qū)是UTC,也就是標(biāo)準(zhǔn)時(shí)間。如果數(shù)據(jù)記錄的時(shí)間是北京時(shí)間,也就是東八區(qū)的時(shí)間,那么MySQL的Now函數(shù)返回的時(shí)間和數(shù)據(jù)記錄的時(shí)間相差了八個(gè)小時(shí)。

查詢MySQL時(shí)區(qū):

mysql> show variables like "%time_zone%";
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | UTC    |
| time_zone        | SYSTEM |
+------------------+--------+

設(shè)置MySQL時(shí)間為北京時(shí)間

mysql> set global time_zone = '+8:00';
Query OK, 0 rows affected
mysql> set time_zone = '+8:00';
Query OK, 0 rows affected
mysql> flush privileges;?
Query OK, 0 rows affected

再查詢下MySQL時(shí)區(qū),驗(yàn)證下Now返回了北京時(shí)間

mysql> show variables like "%time_zone%";
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | UTC    |
| time_zone        | +08:00 |
+------------------+--------+
mysql> SELECT NOW();
+---------------------+
| NOW()               |
+---------------------+
| 2022-07-19 18:57:35 |
+---------------------+
1 row in set

MySQL時(shí)區(qū)的設(shè)置和Docker有關(guān)

這里說(shuō)下花了我大量時(shí)間的坑,也就是這個(gè)服務(wù)器的MySQL是通過(guò)Docker安裝的,我就懶得去修改MySQL的配置文件了,而配置文件里沒(méi)有配置默認(rèn)時(shí)區(qū)。

理論上,MySQL就會(huì)應(yīng)用本地服務(wù)器的時(shí)區(qū),而本地服務(wù)器的時(shí)區(qū)已經(jīng)設(shè)置成東八區(qū)了,在系統(tǒng)控制臺(tái)我能看到返回的當(dāng)前時(shí)間是北京時(shí)間了。

問(wèn)題就在于上面這個(gè)“理論”不靠譜,不是的,MySQL依然是返回UTC時(shí)間。

我記憶的這個(gè)“理論”應(yīng)該是有問(wèn)題的,但沒(méi)有搞清楚具體問(wèn)題是什么,懷疑是和Dockers有關(guān),如果是直接安裝的MySQL在不配置默認(rèn)時(shí)區(qū)時(shí)似乎沒(méi)有遇到這個(gè)問(wèn)題。

解決辦法:

結(jié)論是不管如何,還是手動(dòng)在設(shè)置下系統(tǒng)的時(shí)區(qū)吧!或者在寫MySQL的配置文件時(shí),增加如下一個(gè)配置,然后才能使用Now()函數(shù)。

修改my.cnf文件,加入如下1行:

default-time-zone='+08:00' # 數(shù)據(jù)表默認(rèn)時(shí)區(qū)

如果是中途 修改,需要重啟Docker,不能偷懶。

到此這篇關(guān)于MySQL now函數(shù)使用的坑的文章就介紹到這了,更多相關(guān)MySQL now內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • msyql show命令匯總

    msyql show命令匯總

    本篇文章是對(duì)msyql中的show命令進(jìn)行了匯總,需要的朋友參考下
    2013-06-06
  • Mysql中 unique列插入重復(fù)值該怎么解決呢

    Mysql中 unique列插入重復(fù)值該怎么解決呢

    本文給大家介紹mysql中unique列插入重復(fù)值的解決方案,主要基于mysql平臺(tái),通過(guò)這些,可以做到一些新的功能和應(yīng)用。特此把本文本文分享給廣大開發(fā)人員
    2015-11-11
  • MySQL窗口函數(shù)OVER使用示例詳細(xì)講解

    MySQL窗口函數(shù)OVER使用示例詳細(xì)講解

    這篇文章主要介紹了MySQL窗口函數(shù)OVER()用法及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 在MySQL中如何存取List<String>數(shù)據(jù)

    在MySQL中如何存取List<String>數(shù)據(jù)

    這篇文章主要介紹了在MySQL中如何存取List<String>數(shù)據(jù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • mysql 5.7.18 綠色版下載安裝教程

    mysql 5.7.18 綠色版下載安裝教程

    這篇文章主要為大家詳細(xì)介紹了mysql 5.7.18 綠色版下載安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • Linux系統(tǒng)每日定時(shí)備份mysql數(shù)據(jù)的方法步驟

    Linux系統(tǒng)每日定時(shí)備份mysql數(shù)據(jù)的方法步驟

    這篇文章主要介紹了Linux系統(tǒng)每日定時(shí)備份mysql數(shù)據(jù)的方法步驟,包括創(chuàng)建文件夾、編寫腳本、設(shè)置定時(shí)任務(wù)和測(cè)試腳本,詳細(xì)步驟涵蓋從文件夾創(chuàng)建到腳本執(zhí)行的全過(guò)程,幫助用戶實(shí)現(xiàn)數(shù)據(jù)庫(kù)的自動(dòng)備份,需要的朋友可以參考下
    2024-11-11
  • MySql中使用INSERT INTO語(yǔ)句更新多條數(shù)據(jù)的例子

    MySql中使用INSERT INTO語(yǔ)句更新多條數(shù)據(jù)的例子

    這篇文章主要介紹了MySql中使用INSERT INTO語(yǔ)句更新多條數(shù)據(jù)的例子,MySQL的特有語(yǔ)法,需要的朋友可以參考下
    2014-06-06
  • 深入理解mysql事務(wù)與存儲(chǔ)引擎

    深入理解mysql事務(wù)與存儲(chǔ)引擎

    本文主要介紹了mysql事務(wù)與存儲(chǔ)引擎,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • linux下mysql 5.7.16 免安裝版本圖文教程

    linux下mysql 5.7.16 免安裝版本圖文教程

    這篇文章主要為大家詳細(xì)介紹了linux下mysql 5.7.16 免安裝版本圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • mysql設(shè)置指定ip遠(yuǎn)程訪問(wèn)連接實(shí)例

    mysql設(shè)置指定ip遠(yuǎn)程訪問(wèn)連接實(shí)例

    這篇文章主要介紹了mysql設(shè)置指定ip遠(yuǎn)程訪問(wèn)連接的方法,分別實(shí)例講述了從任意主機(jī)和指定ip訪問(wèn)遠(yuǎn)程MySQL數(shù)據(jù)庫(kù)的方法,代碼簡(jiǎn)單功能實(shí)用,需要的朋友可以參考下
    2014-10-10

最新評(píng)論