我试图在phpmyadmin中使用以下查询将当前时区更改为亚洲/加尔各答。但它不工作。
第一..
set time_zone = '+5:30'
月2
SET `time_zone` = 'Asia/Kolkata'
3日
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
1条答案
按热度按时间qhhrdooz1#
设置全局时区实际上需要DBMS上的管理权限:它会影响数据库的所有用户,如果它发生更改,可能会导致其他软件的混乱。您的错误消息清楚地表明您没有该权限。将DBMS的全局时区设置为UTC被认为是一个很好的实践。
设置会话时区(前两个示例)不需要特权,因为它只影响您的会话。许多应用程序在每次连接到DBMS时都会设置时区,因为这允许将当前时区设置作为用户首选项进行处理。
你没有说你的前两个例子是否成功。如果
SET SESSION time_zone='Asia/Kolkata'
失败而SET SESSION time_zone='+05:30'
成功,则意味着系统管理员尚未加载DBMS的时区表。问那个人read this。请注意,许多主机提供商拒绝加载这些表,即使它们是MySQL和MariaDb标准配置的一部分。(If你的前两个例子都失败了,还有别的地方错了。
对于仅限印度的应用程序,没有可用的时区表不是问题,因为印度不使用白天时间。但对于许多地方来说,当地时间和UTC之间的偏移量每年会改变两次。时区表实现这些更改。例如,
America/Halifax
在夏季的-03:00
和冬季的-04:00
之间切换。