栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将MySQL数据库时区设置为GMT

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将MySQL数据库时区设置为GMT

不,不可能更改MySQL实例中单个数据库的时区。

我们可以

time_zone
通过查询来检索服务器和客户端设置,如下所示:

SELECT @@global.time_zone, @@session.time_zone;

我们还可以更改会话的客户端时区,或更改整个MySQL实例的时区。

但是,我们需要敏锐地意识到此更改将对现有客户端连接产生的影响,并且将解释实例中已存储的方式

DATETIME
TIMESTAMP
值。

要在MySQL实例启动时设置服务器time_zone,我们可以

/etc/my.cnf
在以下
[mysqld]
部分下修改文件(或在读取mysql实例初始化参数的任何位置):

[mysqld]default-time-zone='+00:00'

- 要么 -

也可以(不太理想)将

--default_time_zone='+00:00'
选项添加到mysqld_safe

注意:
更改MySQL服务器上的时区设置不会更改存储在现有DATETIME或TIMESTAMP列中的值,但由于它确实有效地更改了解释这些存储值的上下文,因此看起来所有值都已移位。(如果将08:00表示为CST,则服务器的time_zone从CST更改为GMT,则现在将相同的“
08:00”设为GMT 8AM,实际上就是2AM CST。

还请记住,TIMESTAMP列始终存储在UTC中,而DATETIME列没有时区。
http://dev.mysql.com/doc/refman/5.5/zh-
CN/datetime.html

每个客户端会话都可以为其自己的会话更改时区设置:

SET time_zone='-06:00';

但这并不能真正“解决”时区转换问题,它只是解决了转换问题。

应用程序层处理时区转换没有天生的“坏”之处。有时,这是处理的最佳地点。它只需要正确且一致地完成即可。

(您描述的设置奇怪的是,应用程序正在存储DATETIME值,就像将MySQL服务器time_zone设置为GMT,而将MySQL服务器time_zone设置为其他东西一样。)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/400705.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号