今天發現有一個程序插入的時間不對,而該字段是配置的默認值 CURRENT_TIMESTAMP,初步判斷是數據庫的時區設置問題。
查看時區
登錄數據庫查看時區配置:
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 表示系統使用的時區是 EDT即北美的東部夏令時(-4h)。
- time_zone 表示 MySQL 采用的是系統的時區。也就是說,如果在連接時沒有設置時區信息,就會采用這個時區配置。
修改時區
修改時區的辦法如下:
# 僅修改當前會話的時區,停止會話失效
set time_zone = '+8:00';
# 修改全局的時區配置
set global time_zone = '+8:00';
flush privileges;
當然,也可以通過修改配置文件(my.cnf)的方式來實現配置,不過需要重啟服務。
# vim /etc/my.cnf ##在[mysqld]區域中加上
default-time_zone = '+8:00'
# /etc/init.d/mysqld restart ##重啟mysql使新時區生效
話說,跟中國不一樣的是,美國有4個時區...

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