MySQL的JDBC驱动8.0配置

  • Post author:
  • Post category:mysql


一、背景

随着MySQL版本不断迭代升级,相应得驱动也要跟着升级,这样才能更好运用MySQL的一些特性。

二、驱动更新步骤

1、版本说明

mysql-connector-java   8.0.21

mycat  1.6.75

2、配置说明

mysql-connector-java 版本

<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<version>8.0.21</version>
</dependency>

jdbc驱动类:com.mysql.jdbc.Driver  改成

com.mysql.cj.jdbc.Driver

配置url: jdbc:mysql://192.168.11.11:6666/bm?useUnicode=true&characterEncoding=utf8&autoReconnect=true

&useSSL=false&serverTimezone=


GMT%2B8




url注意事项

:

serverTimezone要与数据库的时区

对应上

3、调试过程存在的问题:

A、java.sql.SQLNonTransientConnectionException:

Could not create connection to database server. Attempted reconnect 3 times. Giving up

.


java.time.zone.ZoneRulesException: Unknown time-zone ID: CST

解决策略:

1)、找DBA沟通,了解彼此使用的组件版本(mycat、 MySQL)

2)、要加上useSSL 和 serverTimezone 时区 ,如

&useSSL=false&serverTimezone=GMT%2B8

或者

serverTimezone=Asia/Shanghai


注意

:serverTimezone要与数据库的时间对应上

B、执行插入 or 更新 or 查询的时候,有时候后输出这些日志:

(DruidAbstractDataSource.java:1488) –

discard long time none received connection

. , jdbcUrl : jdbc:mysql://XXXXXXX?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&serverTimezone=CST, jdbcUrl : jdbc:mysql://XXXXXXX?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&serverTimezone=CST, lastPacketReceivedIdleMillis : 301555

产生原因:

druid 的版本较高

,降低 druid 版本可以解决这个提示。如下:

<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>druid</artifactId>
   <version>1.1.22</version>
</dependency>

相关链接:

https://juejin.cn/post/6844903476225376264



版权声明:本文为baidu_28068985原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。