PHPMyAdmin设置MySQL时区为Asia/Kolkata失败,遇#1227权限错误
解决MySQL时区设置(Asia/Kolkata)的权限问题
问题原因
你碰到的#1227错误,是因为修改**全局时区(GLOBAL)**需要SUPER权限(MySQL 8.0.16及以后为SYSTEM_VARIABLES_ADMIN权限),而你的PHPMyAdmin账号没有该权限。另外你之前尝试的会话级修改,可能没及时验证是否生效。
可行解决方案
1. 临时修改当前会话时区(无需高权限)
执行以下任意一条SQL,这个修改仅对当前PHPMyAdmin连接有效,关闭页面后会重置:
SET time_zone = '+05:30'; -- 或使用时区名称(前提是MySQL已加载时区数据) SET time_zone = 'Asia/Kolkata';
执行后立刻验证效果:
SELECT @@time_zone; -- 查看当前会话时区 SELECT NOW(); -- 确认时间是否对应印度时区
2. 联系服务器管理员配置全局永久时区
如果需要所有连接默认使用Asia/Kolkata,找主机管理员或运维人员做以下操作:
方法一:通过SQL设置全局时区
用管理员账号(如root)执行:SET GLOBAL time_zone = 'Asia/Kolkata';若使用时区名称时报错,先导入MySQL时区数据(Linux系统):
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql执行后重启MySQL服务,新连接会自动应用该时区。
方法二:修改MySQL配置文件(永久生效)
找到MySQL配置文件(Linux为my.cnf,Windows为my.ini),在[mysqld]区块添加:default-time-zone='Asia/Kolkata'保存后重启MySQL服务,所有新连接都会默认使用该时区。
3. 通过PHPMyAdmin设置永久会话时区(部分主机支持)
打开PHPMyAdmin,找到顶部「设置」选项,在「时区」下拉菜单选择Asia/Kolkata并保存。之后每次打开PHPMyAdmin,都会自动应用这个时区。
内容的提问来源于stack exchange,提问作者Sukrat
相关产品推荐
相关产品推荐

