JDK、MySQL、CentOS 兼容性问题

1、项目环境

开发环境 : Windows 10
测试环境 : CentOS ( 6 & 7 )
数据库 : MySQL ( 5.5 & 5.7 )
语言 : Java 1.8 ( 1.8.0_171 & 1.8.0_261 )
生产环境 : CentOS 7 + MySQL 5.5 + Java 1.8.0_261


2、问题描述

team 中其他人开发的项目,部署在不同的服务器。可以正常部署,代码运行过程中,部分环境报错。
报错信息如下:

2021-10-27 17:39:01.345 WARN  [StatisticScheduler_Worker-1]org.hibernate.engine.jdbc.spi.SqlExceptionHelper.logExceptions():137 -SQL Error: 0, SQLState: S1009
2021-10-27 17:39:01.346 ERROR [StatisticScheduler_Worker-1]org.hibernate.engine.jdbc.spi.SqlExceptionHelper.logExceptions():142 -HOUR_OF_DAY: 0 -> 1

3、原因分析

找了一下前辈们遇到的类似问题,总结原因:

  1. 字段问题;(相同代码,相同初始化脚本。排除!)
  2. 数据库权限问题;(都是 root 测试过。排除!)
  3. 兼容性问题。(这里有问题)

可以明显发现,开发、测试、生产环境不统一。根据前辈们踩过的坑,可以定位原因:存在兼容性问题,造成的异常。


4、解决方案

CentOS 7 环境,JDK 升级到 1.8.0_261 ,则不会再出现异常。


5、总结

开发、测试、生产环境要统一,小版本号等细节不一致也会出问题。

经过测试,正常的情况:

  1. Windows 10 + 1.8.0_261 + MySQL 5.5
  2. Windows 10 + 1.8.0_261 + MySQL 5.7
  3. CentOS 6 + 1.8.0_171 + MySQL 5.5
  4. CentOS 6 + 1.8.0_171 + MySQL 5.7
  5. CentOS 7 + 1.8.0_261 + MySQL 5.5
  6. CentOS 7 + 1.8.0_261 + MySQL 5.7

经过测试,异常的情况:

  1. CentOS 7 + 1.8.0_171 + MySQL 5.7

其他情况不测试了,原理是一样的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值