You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu服务器上MySQL的Pacific/Fiji时区提前一小时的修正方法求助

修正Ubuntu服务器上MySQL的Pacific/Fiji时区偏差问题

既然服务器本身的Pacific/Fiji时区显示正常,只有MySQL出问题,那咱们可以从几个更精准的方向排查,之前全量导入时区数据没生效的话,试试下面的步骤:

  1. 先确认MySQL当前的时区配置
    登录MySQL执行这条命令,看看全局和会话时区的设置:

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

    如果显示是SYSTEM,理论上应该和服务器时区同步,但可能是MySQL的时区数据文件有异常,导致解析Pacific/Fiji时区出错。

  2. 单独导入Pacific/Fiji的时区数据
    全量导入所有时区有时候会因为某些文件损坏或权限问题失败,咱们单独导入目标时区试试:

    mysql_tzinfo_to_sql /usr/share/zoneinfo/Pacific/Fiji | mysql -u root -p mysql
    

    执行时输入root密码即可,这个命令会把Fiji的时区数据精准写入MySQL的mysql库中。

  3. 必须重启MySQL服务
    时区数据导入后,一定要重启MySQL才能让新的时区数据生效:

    sudo systemctl restart mysql
    
  4. 手动指定MySQL的全局时区
    重启后登录MySQL,手动设置全局和当前会话的时区,确保即时生效:

    -- 设置全局时区,所有新会话都会用这个设置
    SET GLOBAL time_zone = 'Pacific/Fiji';
    -- 设置当前会话的时区,马上生效
    SET time_zone = 'Pacific/Fiji';
    
  5. 配置永久生效(避免重启后还原)
    为了防止MySQL重启后时区又变回原来的样子,修改MySQL的配置文件:

    • 找到配置文件位置,Ubuntu一般是/etc/mysql/mysql.conf.d/mysqld.cnf或者/etc/my.cnf
    • 打开文件,在[mysqld]段落下添加一行:
      default-time-zone = 'Pacific/Fiji'
      
    • 保存后再次重启MySQL服务:sudo systemctl restart mysql
  6. 验证修复结果
    最后执行两条命令对比:

    • 服务器端执行:date
    • MySQL中执行:SELECT NOW();
      两者的时间应该完全一致,就说明时区问题解决了。

内容的提问来源于stack exchange,提问作者P K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.01 00:58:11