记一次因为服务器和数据库时间不统一导致的数据入库问题排查

📅 2026/6/26 2:53:23
记一次因为服务器和数据库时间不统一导致的数据入库问题排查
缘起下午在将测试服务迁移到预生产环境后由于预生产环境属于内网环境数据库使用公网访问。未确认时间差问题。将服务部署以后运行无任何报错然后数据未能成功入库。事务处理结果都能从库里查询出结果但是通过工具查询数据库的时候无返回。当时很纳闷为什么会有这个问题。先后排查了服务代码脚本等均未发现异常。在分析日志的时候发现日志记录的时间比北京时间晚了8个小时当时北京时间18点而日志时间才10点初时未怀疑时间问题后来观察到日志记录时间想到代码获取时间使用的服务器时间数据库时间与代码使用的服务器时间不统一是否为这个原因所致遂改代码后进行了单次测试发现确实是这样的原因导致才回想以前也遇到过类似问题只是同步服务器时间解决但这次仍然碰到了还是记录下来警示自己。活学活用考虑问题要跳脱思维不能在常规里循规蹈矩。仅此记录以作警示自己以后遇到还是要多方考虑。原始数据获取采用的LocalDateTime.now()获取服务器时间后续改为TableField(insertStrategy FieldStrategy.NEVER)不走服务器时间时间交由数据库管理updateTime更新时间添加了TableField(update now())注解交由mybatis-plus管理。数据库表时间戳管理使用了ALTER TABLE t_xx_xx MODIFY create_time DATETIME DEFAULT CURRENT_TIMESTAMP;来对数据表时间做管理终于解决了问题。业务代码字段进行了变更处理。虽然最终解决了问题顺利完成部署测试上线但是这次的教训也是深刻的问题分析还是要努力扩展思维。