sql默认时区设置面临的问题请解决

问题描述 投票:0回答:1

我尝试在 phpmyadmin 中使用以下查询将当前时区更改为亚洲/加尔各答。但它不起作用..

第一个..

set time_zone = '+5:30'

第二.

SET `time_zone` = 'Asia/Kolkata'

第三.

SET GLOBAL time_zone = '+05:30';

4号。

SET GLOBAL time_zone = "Asia/Kolkata";

但这不起作用,显示此错误

#1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation
sql mysql datetime phpmyadmin timezone
1个回答
0
投票

设置全局时区实际上需要 DBMS 的管理权限:它会影响所有数据库的用户,并且如果它发生更改,可能会导致其他软件混乱。您的错误消息清楚地表明您没有该权限。将 DBMS 的全球时区设置为 UTC 被认为是一个很好的做法。

设置会话时区(前两个示例)不需要特权,因为它只影响您的会话。许多应用程序每次连接到 DBMS 时都会设置时区,因为这允许将当前时区设置作为用户首选项进行处理。

你没有说你的前两个例子是否成功。如果

SET SESSION time_zone='Asia/Kolkata'
失败而
SET SESSION time_zone='+05:30'
成功,则意味着系统管理员尚未加载 DBMS 的时区表。请那个人阅读本文。请注意,许多托管提供商拒绝加载这些表,即使它们是 MySQL 和 MariaDb 标准配置的一部分。

(如果你的前两个例子都失败了,那就是其他地方出了问题。)

对于仅限印度的应用程序,没有可用的时区表不是问题,因为印度不使用夏令时。但对于许多地方来说,当地时间与 UTC 之间的偏移每年会发生两次变化。时区表实现了这些更改。例如,

America/Halifax
在夏天在
-03:00
和冬天在
-04:00
之间切换。

© www.soinside.com 2019 - 2024. All rights reserved.