【问题标题】:Setting MySQL time_zone info without shell access在没有 shell 访问的情况下设置 MySQL time_zone 信息
【发布时间】:2014-05-18 16:54:09
【问题描述】:

我正在开发一个包含许多“日期”字段的数据库。这些日期需要转换为 UTC 以获得一些输出,我打算使用 CONVERT_TZ('theField','GMT','UTC')。 但是,@@global.time_zone 变量当前未设置(当前返回“SYSTEM”),时区信息表当前为空。我认为这需要通过运行mysql_tzinfo_to_sql shell 脚本 (http://dev.mysql.com/doc/refman/4.1/en/time-zone-support.html) 来填充。

我的问题是我没有任何类型的 shell 访问相关系统,因此我无法运行 mysql_tzinfo_to_sql 脚本。所以我有两个问题...

1) 如果 MySQL 目前使用的是“SYSTEM”时区,有什么方法可以准确地确定系统时区是什么(记住我没有 shell 或任何其他访问权限)?

2) 是否可以通过 shell 脚本以外的方式生成 MySQL 时区表中的信息,即完全在 MySQL 本身内?

感谢任何建议,谢谢。

【问题讨论】:

  • 经过深思熟虑后,我不确定问题 1 是否重要。数据保存在Date 列中,因此没有与之关联的时区。 time_zone 表中的信息仍然是从我决定 Date 字段表示的任何 tz(在本例中为 GMT)到我想要作为输出(在本例中为 UTC)的任何 tz 的转换所必需的。

标签: mysql timezone


【解决方案1】:

您可以查看您使用的时区:

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

设置时区:

SET @@global.time_zone = 'SYSTEM';

如果你想知道系统的时区:

窗户:

进入 cmd 并输入systeminfo

Linux:

date +%Z

【讨论】:

  • 谢谢 - 正如问题中所述,时区已设置为 SYSTEM 但我没有 shell 访问权限来检查系统时区的实际情况。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-19
  • 2017-06-28
  • 1970-01-01
相关资源
最近更新 更多