今天發(fā)現(xiàn)有一個程序插入的時間不對,而該字段是配置的默認(rèn)值 CURRENT_TIMESTAMP,初步判斷是數(shù)據(jù)庫的時區(qū)設(shè)置問題。
查看時區(qū)
登錄數(shù)據(jù)庫查看時區(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)使用的時區(qū)是 EDT即北美的東部夏令時(-4h)。
- time_zone 表示 MySQL 采用的是系統(tǒng)的時區(qū)。也就是說,如果在連接時沒有設(shè)置時區(qū)信息,就會采用這個時區(qū)配置。
修改時區(qū)
修改時區(qū)的辦法如下:
# 僅修改當(dāng)前會話的時區(qū),停止會話失效
set time_zone = '+8:00';
# 修改全局的時區(qū)配置
set global time_zone = '+8:00';
flush privileges;
當(dāng)然,也可以通過修改配置文件(my.cnf)的方式來實現(xiàn)配置,不過需要重啟服務(wù)。
# vim /etc/my.cnf ##在[mysqld]區(qū)域中加上
default-time_zone = '+8:00'
# /etc/init.d/mysqld restart ##重啟mysql使新時區(qū)生效
話說,跟中國不一樣的是,美國有4個時區(qū)...
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。
您可能感興趣的文章:- mysql解決時區(qū)相關(guān)問題
- 關(guān)于Java中的mysql時區(qū)問題詳解
- MySQL修改時區(qū)的方法小結(jié)
- 詳解MySQL查詢時區(qū)分字符串中字母大小寫的方法
- mysql時區(qū)問題
- 解決MySQL8.0時區(qū)的問題步驟