ODI升级连接mysql数据库的驱动
ODI版本 Oracle Data Integrator 12c (12.2.1.3.0)(在对应安装odi客户端的服务器上进行(bda1node04上面))
连接mysql驱动jdbc版本:5.0版本
出现问题原因:jdbc驱动版本只能支持到mysql5版本,当连接mysql8.0的时候就会出现问题,报错如下:
oracle.odi.runtime.agent.invocation.InvocationException: oracle.odi.core.exception.OdiRuntimeException: java.sql.SQLException: java.lang.ClassCastException
at oracle.odi.runtime.agent.invocation.RemoteRuntimeAgentInvoker.invoke(RemoteRuntimeAgentInvoker.java:472)
at oracle.odi.runtime.agent.invocation.support.InternalRemoteRuntimeAgentInvoker.invoke(InternalRemoteRuntimeAgentInvoker.java:162)
at oracle.odi.runtime.agent.invocation.RemoteRuntimeAgentInvoker.invokeTestDataServer(RemoteRuntimeAgentInvoker.java:1152)
at com.sunopsis.graphical.dialog.SnpsDialogTestConnet.remoteTestConn(SnpsDialogTestConnet.java:664)
at com.sunopsis.graphical.dialog.SnpsDialogTestConnet$9.doInBackground(SnpsDialogTestConnet.java:622)
at oracle.odi.ui.framework.AbsUIRunnableTask.run(AbsUIRunnableTask.java:258)
at oracle.ide.dialogs.ProgressBar.run(ProgressBar.java:961)
at java.lang.Thread.run(Thread.java:748)
解决办法:替换odi里面连接mysql数据库的驱动版本,换高版本连接驱动,难点在于需要尝试去找odi在本地和agent对应的驱动版本位置,
###本地位置如下
###agent位置如下
替换好了以后,需要登录到相对应的目录地址,进行找到进程号对应端口号,然后禁止掉,并重启。
目录所在地址:
在这个bin目录下,进行查找进程号,禁止掉,重启命令。
查找20910对应进程号
ps -ef|grep 20910
杀掉进程号命令:
kill -9 106824
启动命令
nohup ./agent.sh -NAME=OracleDIAgent -port=20910 &
查看日志命令
tail -f nohup.out
从后往前看,它会不停的将日志写到nohup.out这个日志文件里面。
还有一个不同区别是:mysql8.0版本对应的jdbc驱动地址变成:com.mysql.cj.jdbc.Driver(在使用时候需要换成这个)
之前低版本驱动还是:com.mysql.jdbc.Driver
这样连接mysql驱动版本升级完成。