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

MySQL 5.7.15版本Timestamp/now()函数异常求助

MySQL 5.7 now()返回时间与系统时间不符的排查方案

问题背景

运行环境:Linux Ubuntu 16.04,MySQL 5.7.15-0ubuntu0.16.04.1
执行select now();返回'2021-01-11 02:33:54',但系统当前时间为Wed 19 Apr 2023 04:11:33 PM EDT,已尝试重启服务器和MySQL服务,问题未解决。

排查与解决步骤

  • 第一步:确认MySQL时区配置
    执行SQL查看全局和会话时区:

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

    同时对比系统与MySQL的时间戳:
    终端执行date +%s,MySQL中执行:

    SELECT UNIX_TIMESTAMP(NOW());
    
    • 若时间戳一致:说明是时区转换问题,修正时区即可。
    • 若时间戳差距巨大:说明MySQL内部时钟未同步系统时间,需进一步排查。
  • 第二步:修正MySQL时区
    临时生效执行:

    SET GLOBAL time_zone = 'America/New_York';
    SET time_zone = 'America/New_York';
    

    永久生效需修改MySQL配置文件(通常为/etc/mysql/mysql.conf.d/mysqld.cnf),添加或修改:

    default-time-zone = 'America/New_York'
    

    保存后重启服务:sudo systemctl restart mysql

  • 第三步:确认系统时间同步状态
    执行timedatectl查看系统时区与同步状态,确保Time zone显示EDT (-04:00)、NTP synchronized为yes。同步异常时重启服务:

    sudo systemctl restart systemd-timesyncd
    

    或手动同步:

    sudo ntpdate pool.ntp.org
    
  • 第四步:排查MySQL内部时钟异常
    若时间戳完全不一致,尝试重新挂载系统时钟:

    sudo mount -o remount,rw /sys/class/rtc/rtc0
    

    仍未解决则备份数据后,考虑重新初始化MySQL系统库(操作前务必备份全量数据)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 12:23:16