今天發(fā)現(xiàn)有一個(gè)程序插入的時(shí)間不對,而該字段是配置的默認(rèn)值 CURRENT_TIMESTAMP,初步判斷是數(shù)據(jù)庫的時(shí)區(qū)設(shè)置問題。
查看時(shí)區(qū)
登錄數(shù)據(jù)庫查看時(shí)區(qū)配置:
mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | EDT |
| time_zone | SYSTEM |
+------------------+--------+
2 rows in set (0.00 sec)
- system_time_zone 表示系統(tǒng)使用的時(shí)區(qū)是 EDT即北美的東部夏令時(shí)(-4h)。
- time_zone 表示 MySQL 采用的是系統(tǒng)的時(shí)區(qū)。也就是說,如果在連接時(shí)沒有設(shè)置時(shí)區(qū)信息,就會(huì)采用這個(gè)時(shí)區(qū)配置。
修改時(shí)區(qū)
修改時(shí)區(qū)的辦法如下:
# 僅修改當(dāng)前會(huì)話的時(shí)區(qū),停止會(huì)話失效
set time_zone = '+8:00';
# 修改全局的時(shí)區(qū)配置
set global time_zone = '+8:00';
flush privileges;
當(dāng)然,也可以通過修改配置文件(my.cnf)的方式來實(shí)現(xiàn)配置,不過需要重啟服務(wù)。
# vim /etc/my.cnf ##在[mysqld]區(qū)域中加上
default-time_zone = '+8:00'
# /etc/init.d/mysqld restart ##重啟mysql使新時(shí)區(qū)生效
話說,跟中國不一樣的是,美國有4個(gè)時(shí)區(qū)...

總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。
您可能感興趣的文章:- mysql解決時(shí)區(qū)相關(guān)問題
- 關(guān)于Java中的mysql時(shí)區(qū)問題詳解
- MySQL修改時(shí)區(qū)的方法小結(jié)
- 詳解MySQL查詢時(shí)區(qū)分字符串中字母大小寫的方法
- mysql時(shí)區(qū)問題
- 解決MySQL8.0時(shí)區(qū)的問題步驟