gpt4 book ai didi

mysql - 无法更改Mysql服务器的时区

转载 作者:行者123 更新时间:2023-11-29 06:52:10 25 4
gpt4 key购买 nike

我们首先将时区设置为 IST(印度标准时间)-

mysql> show global variables like '%time_zone%';
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | IST |
| time_zone | SYSTEM |
+------------------+--------+


SELECT @@global.time_zone, @@session.time_zone;
+--------------------+---------------------+
| @@global.time_zone | @@session.time_zone |
+--------------------+---------------------+
| SYSTEM | SYSTEM |
+--------------------+---------------------+
1 row in set (0.00 sec)

mysql> select NOW();
+---------------------+
| NOW() |
+---------------------+
| 2017-10-31 17:05:26 |
+---------------------+

上面显示的时间与服务器时间相同,也在 IST 中。

我们想将其更改为 UTC。与时区为 UTC 的服务器相比,该服务器上唯一不同的值似乎是 system_time_zone变量设置为 IST,如上所示。

不确定要更改哪个变量/配置。

我们尝试更改 default-time-zone在 my.ini 中,但它更改了 time_zone变量而不是 system_time_zone .

以下还将尝试更新time_zone我认为 - 设置全局 time_zone="+00:00";

所以,不确定什么会更新system_time_zone

已检查https://stackoverflow.com/a/5359622/351903不确定 system_time_zone 和 time_zone 之间到底有什么区别。

此外,The Mysql documentation says -

The permissible values for --timezone or TZ are system dependent.

无法在 Windows 和 Cent OS 服务器上找到适当的 IST 值。 From this article看来需要一些调查。有人可以帮忙吗?任何指示。

背景

我想要的是看到时差为 5:30 小时 select NOW();在服务器上。当前它显示的时间与应用程序服务器时间(也是 IST)相同。我们正在尝试添加此差异以重现测试场景。

更新

在我的 Windows 设置中获取以下内容 -

mysql> SET time_zone = 'Asia/Kolkata';
ERROR 1298 (HY000): Unknown or incorrect time zone: 'Asia/Kolkata'
mysql> SET time_zone = "Asia/Kolkata";
ERROR 1298 (HY000): Unknown or incorrect time zone: 'Asia/Kolkata'
mysql> SET time_zone = "UTC";
ERROR 1298 (HY000): Unknown or incorrect time zone: 'UTC'

最佳答案

您的MySQL software's system time zone default设置为您的服务器计算机的默认时区。这就是 SYSTEM 在该设置中的含义。您的服务器计算机又设置为印度时间。

请注意,NOW() 和 TIMESTAMP 数据在显示或检索时始终会转换为本地时间。本地时间是通过设置 time_zone 变量来定义的,可以是为 MySQL 连接设置的变量,也可以是全局变量。

尝试这个序列,看看是否能得到 UTC 格式的 NOW(),然后是印度时间。此序列设置您连接的 time_zone 变量。这样做会覆盖系统设置。

 SET time_zone = 'UTC';
SELECT NOW();
SET time_zone = 'Asia/Kolkata'; /* zoneinfo name for India time */
SELECT NOW();

如果您得到了预期的结果,您可以将服务器计算机上的默认时区设置从印度时间更改为 UTC。这通常是很好的做法。如何执行此操作取决于服务器计算机的操作系统。这说明了如何在 Ubuntu 上执行此操作。

https://askubuntu.com/questions/323131/setting-timezone-from-terminal

或者,您可以编辑 MySQL 配置文件以包含如下行:

 default-time-zone='UTC'

然后重新启动 MySQL 服务器软件。

在美国,我们的时区非常困惑,将默认值设置为 UTC 通常会很有帮助。然后,我们允许用户在注册使用网络应用程序时选择时区首选项。也许,如果您的网络应用程序是全印度的,您就不需要这种额外的复杂性。

关于mysql - 无法更改Mysql服务器的时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47036797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com