MySQL8 JDBC连接zeroDateTimeBehavior注意事项

Posted 我的二狗呢

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL8 JDBC连接zeroDateTimeBehavior注意事项相关的知识,希望对你有一定的参考价值。


前段时间,研发反馈个问题:

一个新上的服务,在测试环境(mysql5.6)跑的的好好的,发布到产线去(MySQL8.0.19) 运行不起来了,报错如下:

MySQL8


运行异常的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注意事项的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse下的MySQL8.0的JDBC连接

java连接Mysql8

JDBC Mysql 驱动连接异常

MySQL8.0版本连接问题(解决驱动时区报错)

使用jdbc连接mysql为啥报错?

MySQL8.0数据库连接驱动问题