mysql版本更改需要注意事项

在实际开发中,会由于环境的改变或者项目的需求会对mysql的版本进行调整,从低版本升到高版本常常会遇到困难,列出遇到的问题,共同学习,使用语言为JAVA。场景为低版本5.5.6升到8.0

注意事项:
问题1:项目启动报错 " java.sql.SQLException: Unknown system variable ‘tx_isolation’ "
解决方法:原因是mysql8.0 以前用的是:tx_isolation 现在用是: transaction_isolation,这需要更新项目中的数据库连接驱动jar,即mysql-connector-java,由原来的5.1.9升到8.0.11,连接驱动类由 com.mysql.jdbc.Driver 改为 com.mysql.cj.jdbc.Driver。
ps:mysql的驱动下载链接为:http://central.maven.org/maven2/mysql/mysql-connector-java/

问题2:报错信息“ java.sql.SQLException:The server time zone value ‘�й���׼ʱ��’ is unrecognized or represents more than one time zone. ”
解决方法:必须在连接字符串中明确指定serverTimezone,serverTimezone可以是UTC、GMT或者Hongkong、Asia/Shanghai作为参数,如果需要使用gmt+8时区,需要写成GMT%2B8,否则会被解析为空

问题3:报错信息“ java.sql.SQLException:
The connection property ‘zeroDateTimeBehavior’ acceptable values are:
‘CONVERT_TO_NULL’, ‘EXCEPTION’ or ‘ROUND’. The value ‘convertToNull’ is not
acceptable. ”
解决方法:zeroDateTimeBehavior=convertToNull改成zeroDateTimeBehavior=CONVERT_TO_NULL

问题4:报错信息“ Establishing SSL connection without server’s identity
verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+
requirements SSL connection must be established by default if explicit option
isn’t set. For compliance with existing applications not using SSL the
verifyServerCertificate property is set to ‘false’. You need either to
explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide
truststore for server certificate verification. ”
解决方法:原因是以上版本的MySQL如果未设置显式选项,则必须默认建立SSL连接,为了符合不使用SSL的现有应用程序,您可以将verifyServerCertificate属性设置为false,您需要通过设置useSSL=false显式禁用SSL,或者设置useSSL=true并提供用于服务器证书验证的信任库。在MySQL连接字符串后加上参数&useSSL=false

你可能感兴趣的:(mysql)