MySQL8 JDBC连接zeroDateTimeBehavior注意事项
Posted 我的二狗呢
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL8 JDBC连接zeroDateTimeBehavior注意事项相关的知识,希望对你有一定的参考价值。
前段时间,研发反馈个问题:
一个新上的服务,在测试环境(mysql5.6)跑的的好好的,发布到产线去(MySQL8.0.19) 运行不起来了,报错如下:
运行异常的jdbc连接串写法:
jdbc:mysql://test.mysql.db01:3306/sbtest?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true
修改后的如下:
jdbc:mysql://test.mysql.db01:3306/sbtest?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=CONVERT_TO_NULL&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true
问题:
在UAT环境(阿里云MySQL RDS8.0.18),上述的“运行异常的jdbc连接串” 服务可以正常运行。 到了生产MGR8.0.19就跑不起来。 二者只有1个小版本差距,查了mysql8.0.19的release note 也没找到关于zeroDateTimeBehavior这块的大的改动。
总体而言, 对应MySQL8的,连接还是用CONVERT_TO_NULL这种写法才是稳妥之道。
以上是关于MySQL8 JDBC连接zeroDateTimeBehavior注意事项的主要内容,如果未能解决你的问题,请参考以下文章