KETTLE连接mysql 8.0.22报错(Error connecting to database: (using class com.mysql.cj.jdbc.Driver))问题处理

前言

今天,在使用kettle开发流程时,遇到如下报错:
Error connecting to database [源端mysql库] :org.pentaho.di.core.exception.KettleDatabaseException:
Error occurred while trying to connect to the database

Error connecting to database: (using class com.mysql.cj.jdbc.Driver)
java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long

org.pentaho.di.core.exception.KettleDatabaseException:
Error occurred while trying to connect to the database

Error connecting to database: (using class com.mysql.cj.jdbc.Driver)
java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long

at org.pentaho.di.core.database.Database.normalConnect(Database.java:440)
at org.pentaho.di.core.database.Database.connect(Database.java:331)
at org.pentaho.di.core.database.Database.connect(Database.java:301)
at org.pentaho.di.core.database.Database.connect(Database.java:291)
at org.pentaho.di.core.database.DatabaseFactory.getConnectionTestReport(DatabaseFactory.java:72)
at org.pentaho.di.core.database.DatabaseMeta.testConnection(DatabaseMeta.java:2644)
at com.crd.access.rmi.RmiImpl.testConnection(RmiImpl.java:1017)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)
at sun.rmi.transport.Transport$1.run(Transport.java:200)
at sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:835)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

Caused by: org.pentaho.di.core.exception.KettleDatabaseException:
Error connecting to database: (using class com.mysql.cj.jdbc.Driver)
java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long

at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:558)
at org.pentaho.di.core.database.Database.normalConnect(Database.java:423)
... 23 more

Caused by: java.sql.SQLException: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
at com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:1041)
at com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3496)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2460)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2230)
at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:813)
at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:334)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:537)
… 24 more
Caused by: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
at com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:992)
… 39 more

Hostname :10.4.0.2
Port :13306
Database name :etl_src

一、报错分析mysql版本为8.0.22

当前我使用的是mysql版本为8.0.22,MySQL6之后的版本都是要指定时区serverTimezone参数值,设置为Asia/Shanghai。
在这里插入图片描述

二、测试可用性!在这里插入图片描述

亲测可用。
到此,问题解决,写这篇文章来记录此次问题处理过程,以便下次出问题快速解决。

更多推荐