真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么查mysql時區(qū) 查看mysql數(shù)據(jù)庫時間

技術分享 | MySQL:一文弄懂時區(qū)&time_zone

你還在被以下問題困擾嗎:

創(chuàng)新互聯(lián)建站專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、涼城網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、成都h5網(wǎng)站建設商城網(wǎng)站定制開發(fā)、集團公司官網(wǎng)建設、成都外貿網(wǎng)站建設、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為涼城等各大城市提供網(wǎng)站開發(fā)制作服務。

MySQL 的安裝規(guī)范中應該設置什么時區(qū)?

JAVA 應用讀取到的時間和北京時間差了14個小時,為什么?怎么解決?

已經(jīng)運行一段時間的業(yè)務,修改 MySQL 的時區(qū)會影響已經(jīng)存儲的時間類型數(shù)據(jù)嗎?

遷移數(shù)據(jù)時會有導致時間類型數(shù)據(jù)時區(qū)錯誤的可能嗎?

...

看完這篇文章,你能解決上面所有的疑惑。首先出場的是和時區(qū)相關的啟動參數(shù)和系統(tǒng)變量。

如果要在 MySQL 啟動時就指定時區(qū),則應該使用啟動參數(shù): default-time-zone ,示例:

啟動后我們可以看到控制時區(qū)的系統(tǒng)變量,其中 time_zone 變量控制時區(qū),在MySQL運行時可以通過 set 命令修改(注意:不可以寫在 my.cnf 中):

啟動參數(shù)和系統(tǒng)變量的可用值遵循相同的格式:

system_time_zone 變量只有全局值沒有會話值,不能動態(tài)修改,MySQL 啟動時,將嘗試自動確定服務器的時區(qū),并使用它來設置 system_time_zone 系統(tǒng)變量, 此后該值不變。當 time_zone='system' 時,就是使用的這個時區(qū),示例中 time_zone 就是 CST,而 CST 在 RedHat 上就是東八區(qū):

概括一下就兩點:

1. NOW() 和 CURTIME() 系統(tǒng)函數(shù)的返回值受當前 session 的時區(qū)影響

不僅是select now(),包括insert .. values(now())、以及字段的 DEFAULT CURRENT_TIMESTAMP 屬性也受此影響:

2. timestamp 數(shù)據(jù)類型字段存儲的數(shù)據(jù)受時區(qū)影響

timestamp 數(shù)據(jù)類型會存儲當時session的時區(qū)信息,讀取時會根據(jù)當前 session 的時區(qū)進行轉換;而 datetime 數(shù)據(jù)類型插入的是什么值,再讀取就是什么值,不受時區(qū)影響。也可以理解為已經(jīng)存儲的數(shù)據(jù)是不會變的,只是 timestamp 類型數(shù)據(jù)在讀取時會根據(jù)時區(qū)轉換:

關于時區(qū)所有明面上的東西都在上面了,我們前面提到的困擾就是在暗處的經(jīng)驗。

1. MySQL的安裝規(guī)范中應該設置什么時區(qū)?

對于國內的業(yè)務了,在 my.cnf 寫入 default-time-zone='+08:00' `,其他地區(qū)和開發(fā)確認取對應時區(qū)即可。

為什么不設置為 system 呢?使用系統(tǒng)時間看起來也是個不錯的選擇,比較省事。不建議的原因有兩點:

2. JAVA應用讀取到的時間和北京時間差了14個小時,為什么?怎么解決?

這通常是 JDBC 參數(shù)中沒有為連接設置時區(qū)屬性(用 serverTimezone 參數(shù)指定),并且MySQL中沒有設置全局時區(qū),這樣MySQL默認使用的是系統(tǒng)時區(qū),即 CST。這樣一來應用與MySQL 建立的連接的 session time_zone 為 CST ,前面我們提到 CST 在 RedHat 上是 +08:00 時區(qū),但其實它一共能代表4個時區(qū):

JDBC在解析CST時使用了美國標準時間,這就會導致時區(qū)錯誤。要解決也簡單:一是遵守上面剛說到的規(guī)范,對MySQL顯示的設置'+08:00'時區(qū);二是JDBC設置正確的 serverTimezone。

3. 已經(jīng)運行一段時間的業(yè)務,修改MySQL的時區(qū)會影響已經(jīng)存儲的時間類型數(shù)據(jù)嗎?

完全不會,只會影響對 timestamp 數(shù)據(jù)類型的讀取。這里不得不提一句,為啥要用 timestamp?用 datetime 不香嗎,范圍更大,存儲空間其實差別很小,趕緊加到開發(fā)規(guī)范中吧。

4. 遷移數(shù)據(jù)時會有導致時間類型數(shù)據(jù)時區(qū)錯誤的可能嗎?

這個還真有,還是針對 timestamp 數(shù)據(jù)類型,比如使用 mysqldump 導出 csv 格式的數(shù)據(jù),默認這種導出方式會使用 UTC 時區(qū)讀取 timestamp 類型數(shù)據(jù),這意味導入時必須手工設置 session.time_zone='+00:00'才能保證時間準確:

如何避免?mysqldump 也提供了一個參數(shù) --skip-tz-utc ,意思就是導出數(shù)據(jù)的那個連接不設置 UTC 時區(qū),使用 MySQL 的 gloobal time_zone 系統(tǒng)變量值。

其實 mysqldump 導出 sql 文件時默認也是使用 UTC 時區(qū),并且會在導出的 sql 文件頭部帶有 session time_zone 信息,這樣可以保證導 SQL 文件導入和導出時使用相同的時區(qū),從而保證數(shù)據(jù)的時區(qū)正確(而導出的 csv 文件顯然不可以攜帶此信息)。需要注意的是 --compact 參數(shù)會去掉 sql 文件的所有頭信息,所以一定要記得: --compact 參數(shù)得和 --skip-tz-utc 一起使用。

mysql workbench中怎么修改時區(qū)

使用mysql連接工具或者命令好工具都可以。我用workbench輸入命令行:

select now(); 查看mysql系統(tǒng)時間。和當前時間做對比

set global time_zone = '+8:00';設置時區(qū)更改為東八區(qū)

flush privileges; 刷新權限

然后退出后重新登錄就可以了,顯示當前時間和我現(xiàn)在的時間一致了。

mysql修改和查看時區(qū)(十五)

1. 查看時區(qū)命令

2.?GMT、UTC、DST、CST時區(qū)代表的意義

2.1 GMT:Greenwich Mean Time?

2.2?UTC: Coordinated Universal Time

2.3?DST: Daylight Saving Time

2.4?CST:Central Standard Time

3.? 修改時區(qū)

3.1?僅修改當前會話的時區(qū),停止會話失效(CET)

3.2 修改全局的時區(qū)配置


當前名稱:怎么查mysql時區(qū) 查看mysql數(shù)據(jù)庫時間
標題網(wǎng)址:http://weahome.cn/article/dosgosd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部